页面仍然在JQueryvalidation失败后回发
我有一个ASP.Net Web表单页面,我已经应用了JQueryvalidation。 问题是,当validation失败时,页面仍然会回发。 我有两个required : true
文本框required : true
validation。 这是我的提交按钮代码:
这是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也会触发回发