我有一个简单的插件,用于提交表单
(function($){
$.fn.ajaxSubmit = function(options){
var defaults = {
onSubmit:function(){},
},
o = $.extend({},defaults, options);
return this.each(function(){
$(this).submit(function(e){
o.onSubmit.call(this);
$.post(o.url,$(this).serialize() ,
function(i){"do stuff"},'json');
return false;
});
});
}
})(jQuery);
这就是我称呼它的方式
$('#commentForm').ajaxSubmit({
onSubmit:function(){
if($('textarea').val()==''){ "do not execute $.post"}
}
});
我想检查textarea是否为空,如果是,请不要继续进行插件或不执行$ .post。
答案 0 :(得分:4)
以差距的答案为基础:
(function($){
$.fn.ajaxSubmit = function(options){
var defaults = {
shouldSubmit:function(){ return true; },
},
o = $.extend({},defaults, options);
return this.each(function(){
$(this).submit(function(e){
if(o.shouldSubmit.call(this)) {
$.post(o.url,$(this).serialize(), function(i){"do stuff"},'json');
}
return false;
});
});
}
})(jQuery);
$('#commentForm').ajaxSubmit({
onSubmit:function(){
if($('textarea').val()==''){ return false; }
}
});
将函数名称更改为shouldSubmit,因为它更有意义,并将默认值设置为true,因此如果尚未覆盖它,则始终提交。
答案 1 :(得分:3)
我希望onSubmit处理程序返回一个bool,然后让插件测试返回值。