Проверка jQuery всегда возвращает true - PullRequest
2 голосов
/ 27 сентября 2011

У меня есть этот HTML;

<form action="" method="post" name="ApplyForm" id="ApplyForm" enctype="multipart/form-data">
  <input type=text class="required"/>
  <input type="submit" onclick="return validateForm()" class="submit" value="Submit Application" title="Submit application" />

и мой сценарий;

    $(function () {
        $("#ApplyForm").validate();
    });

    function validateForm() {
        alert($(".email").valid());

        return false;
    }

Итак, что происходит, если я выдаю предупреждение alert($("#ApplyForm").valid()); Я всегда получаю истину, но если я оповещаю отдельные поля, я получаю ожидаемые результаты, но форма все еще отправляет ответ;

этот код работает, но я не уверен, почему проверка не работает в форме;

    function validateForm() {
        if ($(".required").valid() == 0)
            return false;
        else
            return true;
    }

Я знаю, что это не так уж и много, но я надеюсь, что кто-то еще имел этот опыт и может сказать мне решение.

Ответы [ 3 ]

0 голосов
/ 14 марта 2014

Попробуйте добавить атрибут name к вашему первому проверенному элементу в форме:

<input type=text required name='blah' />

Я потратил 2 часа на отслеживание этой же проблемы и обнаружил, что если элемент FIRST проверен в формеимеет атрибут name, тогда все работает так, как вы ожидаете (то есть .valid() вернет false, если форма недействительна).Кажется, не имеет значения, имеют ли другие проверенные элементы атрибуты имени или нет.

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

0 голосов
/ 03 февраля 2015

Вы должны добавить

<input type="text" data-val="true" name="name" data-required="1">

Для ненавязчивых атрибутов, совместимых с HTML 5, опишите валидаторы, которые будут прикреплены к полям ввода

Дополнительная информация Нажмите здесь

0 голосов
/ 27 сентября 2011
<form action="" method="post" name="ApplyForm" id="ApplyForm" onSubmit="return validateForm()" enctype="multipart/form-data">
    <input type=text class="required"/>
    <input type="submit" class="submit" value="Submit Application" title="Submit application" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...