Добавить метод в проверку JQuery без кнопки отправки - PullRequest
3 голосов
/ 22 октября 2011

У меня есть форма, которую нужно проверить, но в ней нет кнопки отправки.Таким образом, чтобы выполнить проверку, я последовал примеру на http://docs.jquery.com/Plugins/Validation/valid

, который говорит, что нужно вызвать функцию .valid ().Поэтому я добавил следующий код, который работал нормально:

            $(".getcars").click(function() {
                valid = $("#form1").valid();
                if(valid){
                    ajaxCall();
                }

            }); 

Теперь я хочу добавить больше правил в поле проверки, поэтому я попытался

jQuery.validator.addMethod("lettersandnumonly", function(value, element) {
                return this.optional(element) || /^[0-9A-Za-z]+$/i.test(value);
                    }, "Letters and numbers only ");
jQuery.validator.addMethod("nowhitespace", function(value, element) {
                return this.optional(element) || /^\S+$/i.test(value);
            }, "No white space please"); 

            $(".getcars").click(function() {
                valid = $("#form1").valid(
                {
                rules: {
                    postal_code: {
                        maxlength: 6,
                        lettersandnumonly: true,
                        nowhitespace: true
                    }
                }
            });
                if(valid){
                    ajaxCall();
                }

            });

, но это не работает.Может кто-нибудь сказать мне, что я делаю неправильно при добавлении правила?

1 Ответ

1 голос
/ 22 октября 2011

rule определения идут при первоначальном вызове validate(). Поскольку valid() работает только с формами, для которых validate() был вызван, я предполагаю, что в коде есть строка где-то, вызывающая validate():

$("#form1").validate();

Все, что вам нужно сделать, это переместить определения правил в этот начальный вызов:

$("#form1").validate({
    rules: {
        postal_code: {
            maxlength: 6,
            lettersandnumonly: true,
            nowhitespace: true
        }
    }
});

... А потом позвоните .valid() позже, как вы делали изначально:

$(".getcars").click(function() {
    valid = $("#form1").valid();
    if(valid) {
        ajaxCall();
    }
}); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...