扩展Jquery插件http://bassistance.de/jquery-plugins/jquery-plugin-validation/

时间:2011-09-13 15:21:44

标签: jquery jquery-plugins

我正在尝试在我的插件中扩展jQuery表单插件。我在下面编写了代码,但我在submitHandler中得到了无限循环。

我的代码有什么问题?我该如何解决?

(function($) {
  $.fn.extend({ 
    //plugin name - myvalidateform
    myvalidate: function(options) { 
      //Settings list and the default values
      var defaults = {     
        relues:null,
        url:null,
        password:0,
        type:'get',
        ajax:null
      };     
      var o2 = $.extend(defaults, options);         
      return this.each(function() {        
        var o =o2;
        var obj = $(this);                   
        var formplugin= $(obj).validate({
          submitHandler: function(form) {
          alert("a");
         $(form).submit();
      }
      });          

      });
    }
  });
})(jQuery);

1 个答案:

答案 0 :(得分:0)

验证器会覆盖提交,因此您只需调用刚才附加的验证器提交。

尝试更改此项(在验证程序中):

validator.settings.submitHandler.call( validator, validator.currentForm );
if (validator.submitButton) {
// and clean up afterwards; thanks to no-block-scope, hidden can be referenced
    hidden.remove();
}
return false;

为:

if (validator.submitButton) {
// and clean up afterwards; thanks to no-block-scope, hidden can be referenced
    hidden.remove();
}
return validator.settings.submitHandler.call( validator, validator.currentForm ) ? true : false;

现在,如果您想提交,您应该可以在submitHandler上使用“return true”来提交表单。现在我可能犯了一个错误并且有更好的方法来做到这一点,但至少我有一些可能有用的答案。

如果您愿意,还可以在我的网站上查看jQuery插件开发指南。