我正在使用validity plugin来验证表单。它运行正常,但如果有效性函数成功,则可以执行回调函数,如下所示
$("form").validity(function(){
$("#place").require().range(3, 50);
$("#location").require().greaterThan(4)
}, function(){ /* Here to put the call back code */ });
因为如果表单验证成功,我想运行一些代码,任何想法都会受到赞赏
答案 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对象,使用起来更加方便。