валидность плагин JQuery проблема? - PullRequest
2 голосов
/ 26 сентября 2011

Я использую плагин validity для проверки формы.Он работает нормально, но возможно ли выполнить функцию обратного вызова, если функция валидности преуспела, как показано ниже

$("form").validity(function(){
    $("#place").require().range(3, 50);
    $("#location").require().greaterThan(4) 
}, function(){ /* Here to put the call back code */ });

, потому что я хочу запустить некоторый код, если проверка формы прошла успешно, Любая идея будет оценена

Ответы [ 4 ]

0 голосов
/ 26 сентября 2011

Обычно вы можете делать такие вещи, как это:

var IsValid = function(){
 $.validity.start();
 $("#place").require().range(3, 50);
 $("#location").require().greaterThan(4) 
 var result = $.validity.end();
 return result;
}

if (IsValid()) { 
 //You callBack or whatewer
}

Конечно, используя этот шаблон, вы можете реализовать свой объект js, который будет более удобным для использования.

0 голосов
/ 26 сентября 2011

Вы можете использовать метод validate.start / validate.end -> http://validity.thatscaptaintoyou.com/Demos/index.htm#UsingValidityWithAjax

это будет выглядеть примерно так (непроверено!):

function validateMyAjaxInputs() {
    $.validity.start();
     $("#place").require().range(3, 50);
    $("#location").require().greaterThan(4) 
    var result = $.validity.end();
    return result.valid;
}

$("form").validity(function(){

    if (validateMyAjaxInputs()) {
        // Do ajax request here
    }
});
0 голосов
/ 26 сентября 2011

Хорошо, валидность поддерживает подключаемые "выходные модули".

Вот один (по общему признанию хакерский и непроверенный), который вызовет вашу функцию обратного вызова. Просто добавьте код в jquery.validity.outputs.js или поместите его в свой собственный файл, который вы загружаете после проверки.

(function($) {
    $.validity.outputs.callback = {
        start:function() {
            buffer = [];
        },

        end:function(results) {
            $.validity.settings.callback(results);
        },

        raise:function($obj, msg) {
            buffer.push(msg);
        },

        raiseAggregate:function($obj, msg) {
            this.raise($obj, msg);
        },

        container:function() {}
    };
})(jQuery);

Использование:

$.validity.setup({
    outputMode:"callback",
    callback:function(){ /* your callback */ }
});

$("form").validity(function(){
    $("#place").require().range(3, 50);
    $("#location").require().greaterThan(4) 
});
0 голосов
/ 26 сентября 2011

Согласно документам это не легко возможно.

Однако вы можете написать собственный «режим вывода», который выполняет ваш обратный вызов: http://validity.thatscaptaintoyou.com/Demos/index.htm#CustomOutputMode

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