Jquery проверить правильность номера плагина с помощью специальных символов - PullRequest
3 голосов
/ 24 января 2011

Я использую плагин jquery validate для проверки поля Number в моей форме.

Скрипт для проверки

NUMBER: {
    required: true,
        number: true,
    minlength: 4,
    },

, который проверяет мое поле формы <input name="NUMBER" type="text" id="NUMBER" value="" maxlength="4" >

но я хочу включить (или разрешить) специальные символы "+", "-" и "," и слово "NA" в поле формы.Как я могу сделать это возможным?Слово "NA" должно быть подтверждено, когда оно само по себе, без какой-либо другой буквы или цифры ..

Заранее спасибо ..:)

blasteralfred

Ответы [ 2 ]

7 голосов
/ 25 января 2011

Вы можете сделать это с помощью своего собственного пользовательского правила для валидатора :

$.validator.addMethod("custom_number", function(value, element) {
    return this.optional(element) || value === "NA" ||
        value.match(/^[0-9,\+-]+$/);
}, "Please enter a valid number, or 'NA'");

Это поле проверяется, если оно необязательно, равно «NA» или соответствует регулярному выражению.

И тогда вы просто примените это новое правило к любому полю, которое хотите:

$("form").validate({
    rules: {
        number: {
            required: true,
            custom_number: true,
            minlength: 4
        }
    }
});

Очевидно, вы должны заменить имя custom_number на что-то более информативное.

Проверьте рабочий пример здесь: http://jsfiddle.net/andrewwhitaker/RtK2p/1/

1 голос
/ 16 августа 2012

Отметьте это http://archive.plugins.jquery.com/project/jvalidation более гибким и простым в использовании размером менее 3 к.

в вашем случае вы можете использовать стандартный валидатор формата проверки данных

<input data-validate-format='/^([0-9,\+-]{0,4}|NA)$/' />

Проверьте регулярное выражение, которое я поставил в качестве значения атрибута

У них есть пример для расширения с дополнительными валидациями, такими как числа

$.fn.validations.options.validators.age = function(){
  return this.val()>0&&this.val()<100;
}

, и в html вы добавляете что-то вроде

<input data-validate-age='true' data-validate-error='.err1' />
<div class='err1'>Age should be more than 0 and less than 100!</div>

Проверка полной документации для Плагин проверки jQuery

...