Squeak.ru - шаблоны программирования

onsubmit=return formValidate(): если false, форма отправляется

Это файл example.html

<form name="test1" onsubmit="return formValidate();" action="test.html" method="post">
<input type="text" name="name"/>
<input type="submit" value ="Submit"/>

Вот код html-файла, в котором есть текстовое поле и кнопка отправки.
Нижеприведенный код представляет собой код test.html, где форма продолжается после успешной проверки.

<body>
    <p>hii </p>
</body>

Моя функция javascript для проверки формы выглядит следующим образом: formValidate.js

function formValidate(){
    var uname=document.test1.name; 
    if(alpha(uname))
    {
    }
    return false;
}
function alpha(uname){
    var pattern=/(?![0-9]*$)[a-zA-Z0-9]+$/;
    if(uname.value.match(pattern))
    {
        return true;
    }
    else
    {
        alert("Invalid input: only numeric not accepted");
        uname.focus();
        return false;
    }
}

Вот мой код проверки, где, если он возвращает false, он должен выдать предупреждающее сообщение о недопустимом вводе. это работает нормально. Но когда он возвращает false, я хочу, чтобы форма не отправлялась на следующую страницу. Как это сделать?

16.01.2014

  • У вас опечатка: здесь, вероятно, должен быть знак уравнения вместо тире: var uname = document.test1.name; 16.01.2014
  • опечатка, сэр, спасибо за уведомление :) 16.01.2014

Ответы:


1

Добавить в событие onsubmit:

<form onsubmit="return formValidate(event);"

И у вас есть синтаксические ошибки в вашем коде. Я исправил их, попробуйте это:

function formValidate(e){
    var uname = document.test1.name;// fix - to =

    if(alpha(uname)) {
        //some code here?
    } else {
        e.preventDefault();
        return false;
    }

}

function alpha(uname){
    var pattern = /(?![0-9]*$)[a-zA-Z0-9]+$/;//remove *
     if(uname.value.match(pattern)) {
        return true;
     } else {
         alert("Invalid input: only numeric not accepted);
         uname.focus();
         return false;
     }
 }
16.01.2014
  • Я исправил синтаксис, сэр, проверка выполняется отлично, но при возврате, если она ложна, форма также перенаправляется на следующую страницу. 16.01.2014
  • Спасибо, сэр. Добавлять ли onsubmit в тег формы или во входной тег отправки, сэр? 16.01.2014
  • Постараюсь, сэр. Спасибо :) 16.01.2014

  • 2

    Попробуй это

    <form name="test1" action="test.html" methos="post"  onsubmit="return formValidate();">
    <input type="text" name="name"/>
    <input type="submit" value ="Submit"/>
    </form>
    
    
    function formValidate()
    {
        var uname=document.test1.name; 
         var pattern=/(?![0-9]*$)[a-zA-Z0-9]+$/;
        if(uname.value.match(pattern))
        {
            return true;
        }
        else
        {
            alert("Invalid input: only numeric not accepted);
            uname.focus();
            return false;
        }
    }
    
    16.01.2014
  • Я пробовал тот же сэр, но он не работает. Если проверка не удалась и возвращает false для onsubmit, она все равно направляет меня на страницу test.html, которую я не хочу. Я хочу, чтобы он оставался на той же странице, если проверка не удалась. 16.01.2014
  • затем проверьте, что он возвращает false или true 16.01.2014
  • Он возвращает false только потому, что предупреждающее сообщение правильно отображает сообщение о недопустимом вводе. Некоторая проблема с onsubmit 16.01.2014
  • вы просто предупреждаете что-то в другой части if(alpha(uname)) { //code return true; } иначе вернуть ложь; 16.01.2014
  • попробуйте мой ответ. Измените это 16.01.2014
  • Новые материалы

    Угловая структура архитектуры
    Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

    «Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
    Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

    Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
    В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

    Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
    React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

    Создайте API с помощью Python FastAPI
    Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

    Веселье с прокси-сервером JavaScript
    Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

    Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
    Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...