页面仍然在JQueryvalidation失败后回发

我有一个ASP.Net Web表单页面,我已经应用了JQueryvalidation。 问题是,当validation失败时,页面仍然会回发。 我有两个required : true文本框required : truevalidation。 这是我的提交按钮代码:

  

这是JQuery的validation方法:

 $(function() { $('#validationForm').validate({ errorElement:'span', errorClass: 'help-inline', focusInvalid: false, //debugger; rules: { : { required: true }, : { required: true } }, messages: { : { required: "Please provide a valid name." }, : { required: "Please specify a description." }, }, invalidHandler: function (event, validator) { //display error alert on form submit $('.alert-error', $('.login-form')).show(); }, highlight: function (e) { $(e).closest('.control-group').removeClass('info').addClass('error'); }, success: function (e) { $(e).closest('.control-group').removeClass('error').addClass('info'); $(e).remove(); }, submitHandler: function (form) { }, invalidHandler: function (form) { } }); }) 

这是检查按钮点击validation的方法:

 function checkValidate(evt) { // Validate the form and retain the result. // var isValid = $('#validationForm').valid(); // // If the form didn't validate, prevent the form submission. // //debugger; if (!isValid){ evt.preventDefault(); evt.stopPropagation(); return false; } else return true; } 

这是我的按钮的呈现HTML:

  

此外,我已将调试器放在checkValidate()方法中,并发现一切正常,但在方法结束后,页面回发。 我在浏览器的控制台上运行了JQuery valid()方法,并且运行正常,返回正确的值。
当文本框为空时: 当文本框为空时 填写文本框时: 填充文本框时

问题究竟在哪里? 如何在validation失败时停止回发页面?

使用

onclick =“return checkValidate(event);”

你可以这样做:

 onclick="if (checkValidate(event)) {YOURMETHODTOEXECUTE_ON_SUCCESS()}" 

显然,您需要稍微重构一下代码,但它应该以这种方式工作。

根据评论,在这种情况下你可以使用这个:

onclick =“return !! yourFunction()”

无需更改你的onserverclick =“”

我终于做到了。 我只是在我的表单上添加onsubmit属性并在其中设置jquery有效方法。
这是我的表格代码预告片

 

这是在我改变它之后。

 

以为我仍然不知道为什么即使validation返回false也会触发回发