有效插件jquery问题?

时间:2011-09-26 08:39:26

标签: jquery validity.js

我正在使用validity plugin来验证表单。它运行正常,但如果有效性函数成功,则可以执行回调函数,如下所示

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

因为如果表单验证成功,我想运行一些代码,任何想法都会受到赞赏

4 个答案:

答案 0 :(得分:0)

根据文档,这是不容易的。

但是,您可以编写执行回调的自定义“输出模式”:http://validity.thatscaptaintoyou.com/Demos/index.htm#CustomOutputMode

答案 1 :(得分:0)

您可以使用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
    }
});

答案 2 :(得分:0)

好的,有效性支持可插拔的“输出模块”。

这是一个(通常是hacky和未经测试的)将调用你的回调函数。只需将代码附加到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) 
});

答案 3 :(得分:0)

通常你可以做这样的事情:

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对象,使用起来更加方便。