目前写了一只plug要做表单验证,
让所有的表单都照这个方式来检查和输出讯息
不过总是会有一些比较特殊的规则需要自定规则
所以我想用callback的方式去执行
sample:
https://jsfiddle.net/JYHuang/q6oxk46j/1/
(function($){
$.fn.validation = function(options) {
// 参数
var $option = $.extend({
Valid : true,
CheckList : [],
callback1 : null,
}, options);
var Act = {
// 把不符合的字段加入讯息清单
add_Message : function(message, name){
$option.CheckList.push({
message: message,
element: $(this).find('[name='+name+']'),
})
},
// 显示错误讯息
show_Message : function() {
if ($option.CheckList.length == 0 )
return true;
// show message
$option.CheckList = [];
},
};
$(this).on('submit',function(){
if (typeof $option.callback1 == 'function') {
$option.extValid.call(Act);
}
// 规则性的验证
if (!$option.Valid){
Act.show_Message();
return false;
}
})
}
})(jQuery);
======= js in HTML ======
$("#form").Fvalidation({
callback1 : function(Act){
if( false ){
Act.push('不符合规则','FieldName');
},
.....略.....
});
可是HTML这边的js执行起来,Act这个一直是undefined
可能是我对scope的东西了解不够深。
请问要如何在callback里,使用plugin本身的method呢?