jquery validate (), возвращающий неопределенный - PullRequest
1 голос
/ 19 ноября 2010

Я пытаюсь использовать плагин Validate для Jquery только для проверки одного поля. Я могу заставить его работать в простой тестовой форме, но когда я попытался подключить его к большой существующей форме на моем сайте, вызов validate возвращает undefined. Он должен вернуть объект Validator. Как мне понять, что не так?

Вот пример кода, который работает:

<script type="text/javascript">
function tst(ctrl) {
    var frm = $(ctrl).parents('form');
    alert('Is email valid? ' + frm.validate({ showErrors: function () { } }).element(ctrl));
}
</script>
<form id="form1" action="" method="post">
    <input type="text" name="email" onblur="tst(this)" class="email"/>
</form>

Однако, если я попытаюсь сделать это в гораздо большей существующей форме, вызов validate вернет undefined, что приведет к ошибке JavaScript, вызывающей element. Я думаю, что в более крупной форме должно быть что-то, что делает validate «крахом», но что это может быть?

Ответы [ 3 ]

5 голосов
/ 19 ноября 2010

.valiate() не возвращает логическое значение, оно устанавливает проверку.

Чтобы определить, является ли <form> или элемент ввода действительным, вы вызываете .valid(), чтобы получить логический результат. Обязательно вызовите этот после .validate(), так как в противном случае <form> не будет настройки валидатора.

0 голосов
/ 27 ноября 2018

Скорее всего, ваш селектор jQuery, который используется для поиска объекта формы, неверен

Попробуйте это:

    var frm = $(ctrl).parents('form');
    console.log(frm.lenght);

, если frm.lenght будет 0, чем $ (ctrl) .parents ('form'); не нашел никаких объектов формы и, таким образом, вызывает validate (), после чего он вернет undefined в качестве объекта validator.

0 голосов
/ 06 июня 2013

вы пытались использовать объект JQuery .. вместо var frm, используя var $frm:

var $frm = $(ctrl).parents('form');
alert('Is email valid? ' + $frm.validate({ showErrors: function () { } }).element(ctrl));

когда вы устанавливаете frm без $, вы просто сохраните элемент html в чистой переменной javascript, не получая элемент в объекте JQuery ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...