button单击jQuery表单validation
我有一个简单的页面,在窗体外面有一个窗体和一个button。 我试图validationbutton单击窗体上。 我已经添加了document.onready函数的表单validation规则。 但是表单没有得到validation。
HTML: –
<html> <head> <script src="lib/jquery1.5.2.js"></script> <script src="lib/jquery.validate.js"></script> <script src="lib/myjs.js"></script> </head> <body> <form id="form1" name="form1"> Field 1: <input id="field1" type="text" class="required"> </form> <div> <input id="btn" type="button" value="Validate"> </div> </body> </html> JS: –
 $(document).ready(function(){ $("#form1").validate({ rules: { field1: "required" }, messages: { field1: "Please specify your name" } }) $('#btn').click(function() { $("#form1").validate(); // This is not working and is not validating the form }); }); 
任何想法有什么不对?
 在你的click处理程序中,错误是.validate()方法; 它只初始化插件,它不validationform 。 
 为了消除在form submitbutton的需要,使用.valid()来触发validation检查… 
 $('#btn').on('click', function() { $("#form1").valid(); }); 
jsFiddle演示
  .validate() – 在DOM准备好的时候初始化插件(带有选项)。 
  .valid() – 检查validation状态(布尔值)或在任何时候触发form上的validationtesting。 
 否则,如果您在form容器中有一个type="submit"button,则不需要特殊的click处理程序和.valid()方法,因为该插件会自动捕获该方法。 
  演示无需click处理程序 
编辑 :
你的HTML中也有两个问题
 <input id="field1" type="text" class="required"> 
- 
在 .validate()声明规则时,不需要class="required"。 这是多余的和多余的。
- 
name属性丢失。 规则是通过name在.validate()中声明的。 该插件依赖于唯一的name属性来跟踪input。
应该…
 <input name="field1" id="field1" type="text" /> 
 $(document).ready(function() { $("#form1").validate({ rules: { field1: "required" }, messages: { field1: "Please specify your name" } }) }); <form id="form1" name="form1"> Field 1: <input id="field1" type="text" class="required"> <input id="btn" type="submit" value="Validate"> </form> 
你也是使用type =“button”。 而我不知道为什么你应该分开提交button,把它放在窗体中。 这样做更合适。 这应该工作。