Многократная проверка + $ .validator для одного поля - PullRequest
0 голосов
/ 09 декабря 2010

Как вызвать несколько функций проверки для одного поля в jQuery.

, как показано ниже

Многократная проверка в строке:

JobDayofWeek: {isValidJOW: true}, JobDayofWeek: {regex: "^ [1-7] $ | ^ (\ s * [1-7] + \ s *, \ s *) + [1-7] $"},

var isValidJOW = function isJOWValid(value) {
        var newTemp = getDataforNewTemplate();
        if (newTemp.AutoResubmitFlag == 'N' && value == '') {
            return true;
        }
        else {
            return false;
        }
    }

 $.validator.addMethod("isValidJOW", function (value, element) {
        var newTemp = getDataforNewTemplate();
        return isValidJOW(newTemp.JobDayofWeek);
    }, 'Job Day of Week Mandatory when auto resubmit flag is set to Y');

    $.validator.addMethod("regex", function (value, element, regexp) {
        var check = false;
        var re = new RegExp(regexp);
        return this.optional(element) || re.test(value);
    }, "The list of values 1(Sunday) to 7 (Saturday).  For multiples enter the following 1,2,3...");


     $(document).ready(function () {
        $("#maintTempForm").validate({
            rules: {
                JobTypes: { isValidJobType: true },
                ExecutableName: { required: true },
                ExecutableType: { isValidJExecutableType: true },
                JobDayofWeek: { isValidJOW: true },
                JobDayofWeek: { regex: "^[1-7]$|^(\s*[1-7]+\s*,\s*)+[1-7]$" },
                JobFrequency: { regexJobFrequency: "^[1-365]$" },
                AutoResubmitFlag: { isValidFlag: true }

            },
            messages: {
                ExecutableName: "Please Enter Valid Executable Name"

            }
        });
    });

Это всегда проверка только первого.

1 Ответ

0 голосов
/ 09 декабря 2010

Правила:

rules: {
    //...
    JobDayofWeek: { isValidJOW: true },
    JobDayofWeek: { regex: "^[1-7]$|^(\s*[1-7]+\s*,\s*)+[1-7]$" }
    //...
}

- это просто литерал объекта, и поэтому не может иметь несколько значений для одного поля. Синтаксический анализатор JavaScript будет использовать только одно из значений JobDayofWeek при построении литерала, который он будет использовать, вероятно, определяется реализацией, но, возможно, нет.

Что происходит с этим набором правил?

rules: {
    JobTypes: { isValidJobType: true },
    ExecutableName: { required: true },
    ExecutableType: { isValidJExecutableType: true },
    JobDayofWeek: { isValidJOW: true, regex: "^[1-7]$|^(\s*[1-7]+\s*,\s*)+[1-7]$" },
    JobFrequency: { regexJobFrequency: "^[1-365]$" },
    AutoResubmitFlag: { isValidFlag: true }
},

Все, что я сделал, это объединил два значения JobDayofWeek в одно. Это должно сработать.

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