2012-03-23 64 views
0

我设置了一个窗体与jQuery验证插件和我的表单将有几个步骤,所以我验证每个步骤和单击NEXT按钮上的窗体。invalidHandler下一个按钮与jQuery验证插件

问题是,默认“invalidHandler”只适用于提交,但如何调用它,如果点击自定义事件或任何其他按钮,但提交(在我的情况下,下一步按钮)?

这里是我快速的代码示例:

$(function() { 
       $("form").validate({ 
        invalidHandler : function(form, validator) { 

         var errors = validator.numberOfInvalids(); 

         if(errors) { 
          alert(errors); 
          validator.errorList[0].element.focus(); 
         } 

        }, 
        rules : { 
         name : 'required' 
        } 
       }); 

       $('#next').click(function() { 

        var element = $('form'); 
        var stepIsValid = true; 
        $("input.text").each(function(index) { 
         stepIsValid = element.validate().element($(this)) && stepIsValid; 
        }); 
        if(!stepIsValid) { 
         return false; 
        } 

       }); 
      }); 

与NEXT按钮形式:

<form> 
      <label for="name">Name:</label> 
      <input type="text" id="name" name="name" class="text" /> 
      <input type="button" value="Next" id="next" /> 
      <input type="submit" /> 
     </form> 

谢谢。

回答

1

使用.valid()手动检查表单的状态:

$('#next').click(function() { 
    var element = $('form'); 
    if (!element.valid()) { 
     return false; 
    } 
}); 

More information on valid()

+0

看起来不错!谢谢。 – devjs11 2012-03-23 15:09:32