JQuery Tools Validator: не требуется, но тестируйте, если не пустой - PullRequest
1 голос
/ 19 октября 2011

Я использую Валидатор из jQuery Tools для проверки моей формы (почему инструменты jquery? Потому что они легковесные и используют для проверки семантические теги HTML5, типы ввода и параметры), но у меня есть одна проблема: Я хочу позволить jQuery Tools Validator проверять / проверять поле ввода только в том случае, если оно не пустое - но поле не требуется.

В полях, которые должны быть проверены / проверены, я могу использовать required="required" и это проверяет ... теперь у меня есть поле ввода текста, где пользователь может ввести URL, это поле не требуется, НО, если пользователь добавляет некоторые данные в это поле, поле должно быть проверено с помощью pattern="https?://.+", чтобы убедиться, чтопользователь вводит действительный URL-адрес ... если я добавлю шаблон-параметр, а не обязательный-параметр, jQuery Tools Validator, тем не менее, выполнит тестирование / проверку, и я не смогу отправить форму, пока не введу действительный URL-адрес - даже если явообще не хочу вводить URL!

Ответы [ 3 ]

3 голосов
/ 19 октября 2011

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

pattern="^(?:|https?://.+)$"
1 голос
/ 19 октября 2011

Есть ли причина, по которой вы привязаны к валидатору jquery tools? Я имел большой успех с: http://bassistance.de/jquery-plugins/jquery-plugin-validation/

Так, например, я бы добавил настраиваемое поле валидатора jQuery:

jQuery.validator.addMethod("unittype", function(value, element) { 
    return jQuery('#fuel option:selected').val() in unitOptions && value in unitOptions[jQuery('#fuel option:selected').val()];
});

jQuery('#fuel').rules("add", {
    fueltype:true,
    messages:{
        fueltype:"Please select a fuel type"    
    }
});

Это был просто пример из моего кода, просто подставьте регулярное выражение в метод.

0 голосов
/ 23 марта 2012

Если вы укажете поле формы как

<input type='url'/>

, тогда jQuery Tools Validator потребует действительный URL-адрес - вам не нужно показывать свое собственное регулярное выражение URL-адреса.

И есливы не помечаете это поле как обязательное, тогда валидатор должен проверять поле только тогда, когда оно не пустое;что, если я правильно понял, это поведение, которое вы (ОП) хотите.

...