用提交处理程序进行jQueryvalidation

我使用jQueryvalidation插件的validate方法设置表单validation,我有一个提交处理程序来修改输入元素的值(我使用YUI编辑器,它需要saveHTML()调用将iframe的内容复制到textarea元素。)。 提交表单时,我希望validation程序在执行提交处理程序后validation表单。 但是如果在validation调用之后注册它,则它不会执行我的提交处理程序。

例如,

 $(document).ready(function() { $("#form1").submit(function() { $("#txt1").val("123456"); }); $("#form1").validate({ rules: { txt1: { maxlength: 5 } } }); }); 

表单在我的提交处理程序之后validation,因此提交被取消。

 $(document).ready(function() { $("#form1").validate({ rules: { txt1: { maxlength: 5 } } }); $("#form1").submit(function() { $("#txt1").val("123456"); }); }); 

但是,如果我更改顺序,则在我的提交处理程序之前validation表单。

您可以使用beforeSubmit回调来设置值:

 $(function() { $('#form1').validate({ rules: { txt1: { maxlength: 5 } }, beforeSubmit: function(arr, $form, options) { $('#txt1').val('123456'); return true; } }); }); 

尝试

 $(document).ready(function() { $("#form1").submit(function() { $("#txt1").val("123456"); $("#form1").validate({ rules: { txt1: { maxlength: 5 } } }); }); }); 

这种方式validation将由您的提交事件处理程序触发。

你必须使用$("form").validate().resetForm();

你可以简单地使用这个:

 var validForm = false; SubmittingForm = function () { //Validate Statements... validForm = true; $("#form1").submit(); } $(document).ready(function () { $("#form1").validate({ submitHandler: function (form) { if (validForm) $("#form1").submit(); else SubmittingForm(); }, rules: ... } 
             

Student Registration Form

Firstname

Lastname

Address

Pincode

City

DOB

MobileNo

EmailId

password

cpassword