Плагин проверки JQuery: значение в нескольких диапазонах - PullRequest
1 голос
/ 09 января 2011

Я использую плагин jQuery Validate для проверки формы, и я хочу, чтобы значение было меньше 26 или выше 30. Как я могу это сделать?

Я пытался:

forum_id: { required: true, range: [0,26], range:[40,100] }

но тогда он просто берет последний диапазон, поэтому, если значение ниже 40, оно выдает ошибку, даже если оно также меньше 26.

Есть предложения?

1 Ответ

4 голосов
/ 09 января 2011

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

Этот ресурс демонстрирует, как добавить метод регулярных выраженийдля валидатора:

jQuery validate: Как добавить правило для проверки правильности регулярного выражения?

Я также сделал еще один шаг и написал плагин для обработкинесколько диапазонов:

 $(document).ready(function() {

 $.validator.addMethod(
    "ranges",
     function(value, element, ranges) {
        var noUpperBound = false;
        var valid = false;
        for(var i=0; i<ranges.length; i++) {
            if(ranges[i].length == 1) { 
                noUpperBound = true;
            }
            if(value >= ranges[i][0] && (value <= ranges[i][1] || noUpperBound)) {
                valid = true;
                break;
            }            
        }

        return this.optional(element) || valid;
    },
    "Please check your input."
 );


 $("#myform").validate({
     submitHandler: function(form) {
        if(form && form.submit) form.submit();
     } 
 });

 // range must be between 0 to 25 OR greater than 30
   // represented as an array of size-2 arrays.
 $("#age").rules('add', { ranges: [ [0,25], [31] ] });


 <form id="myform" action="#">
    <span>age</span><input type="text" id="age" name="age" />
    <input type="submit" name="submit" value="submit" />
 </form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...