我有大量此类脚本:
// xx is the module name and will be different
$('[data-target="xx"]').validate({
ignore: '',
rules: {
ORI_Text: {
required: true
}
},
submitHandler: function(form) {
var formData = new FormData(form);
saveFormDatas(form);
return false;
}
});
如何使submitHandler
部分对我的所有验证脚本都通用,因为它是相同的?
感谢。
答案 0 :(得分:0)
您可以简单地创建一个函数,因为您拥有的代码不依赖于任何外部状态,只对给定的参数起作用。
// this is now abstracted and you can pass it as the callback to many validations.
function onSubmit(form) {
var $input = $(this) // if you need a reference to the validated element
var formData = new FormData(form);
saveFormDatas(form);
return false;
}
$('[data-target="xx"]').validate({
ignore: '',
rules: {
ORI_Text: {
required: true
}
},
submitHandler: onSubmit // the function is passed by reference
});
答案 1 :(得分:0)
您可以使用原型设置(可能):
var someproto={
ignore: "",
rules: {
ORI_Text: {
required: true
}
},
submitHandler: function(form) {
var formData = new FormData(form);
saveFormDatas(form);
return false;
}
}
function some(rules){
return Object.assign(Object.create(someproto),rules);
}
可以这样:
$('[data-target="xx"]').validate(some({ignore:"a"}));
将部分放入jquery使其更易于使用:
jQuery.fn.some=function(rules){
this.validate(some(rules));
};
可以这样:
$('[data-target="xx"]').some({ignore:"a"});