Метод jQuery Validation `valid ()` возвращает 0, когда требуется не верно - PullRequest
3 голосов
/ 27 января 2009

Я использую плагин jQuery Validation , и у меня есть текстовое поле с классом digits, чтобы заставить его быть только цифрами, но не обязательно. Когда я вызываю validate в форме, он работает нормально, но если я вызываю valid() в текстовом поле, когда оно пустое, оно возвращает 0, несмотря на отсутствие сообщения об ошибке и не требуется его установка.

Кто-нибудь знает, почему он будет возвращать это для, казалось бы, действительного входного значения?

Вот код:

<input type="text" value="" name="kiloMetresTravelled" id="kiloMetresTravelled" class="digits"/>

и сценарий

<script type="text/javascript'>
 var isvalid = jQuery('#kiloMetresTravelled').valid(); 
 //isvalid == 0 when kiloMetresTravelled is blank
</script>

Ответы [ 3 ]

7 голосов
/ 27 января 2009

Проверьте это, из документации :

Делает обязательным поле и цифры только.

Вы можете сделать что-то вроде этого:

var isValid = jQuery('#kiloMetresTravelled').valid() || jQuery('#kiloMetresTravelled').val() == "";
2 голосов
/ 02 октября 2009

Я думаю, что это работает:

var e="#whatever";
var isValid = $(e).valid() || $(e).val()== "" && !$(e).hasClass('required');
0 голосов
/ 02 октября 2013

В библиотеке есть ошибка, когда методы правила проверяют наличие необязательных полей с помощью this.optional (element). Когда поле пустое, this.optional возвращает «несоответствие зависимостей», а метод проверки возвращает «неопределенное», помечая поле как недействительное.

Полное объяснение здесь:

https://github.com/jzaefferer/jquery-validation/issues/481

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