我在ASP.NET中有一个带有此按钮的表单:
<asp:Button ID="btnNext"
runat="server"
CausesValidation="false"
Text="Submit Form" />
我使用jQuery Validate在此表单上进行验证,就像这样:
jQuery(function() {
jQuery('#form1').validate({
rules: {
txtSerialNumber: {
required: true
}
},
messages: {
txtSerialNumber: {
required: "Please enter a serial number."
}
}
});
});
还有更多,但所有字段都相同。我已验证此验证代码有效。
我也有一些JavaScript来调用验证码,因为它以前不起作用(由于各种原因)。
jQuery('#btnNext').on("click", function () {
if (jQuery("#form1").valid()) {
jQuery(this).prop('disabled', true); // prevent multiple submits
return true;
} else {
return false;
}
});
编辑:当我注释掉禁用按钮的行时,表单将正确提交。因此,似乎在页面回发之前禁用了提交按钮会导致页面不回发。
当我单击此按钮提交表单时,上面的javascript被调用,但页面未回发并提交。我一直在拉头发,试图弄清楚这个问题。有明显的原因不能正常工作吗?我想念什么?
答案 0 :(得分:2)
向按钮中添加一个OnClientClick
事件,这将调用验证,而不是使用jquery添加.on("click")
事件处理程序。
<asp:Button ID="btnNext"
runat="server"
CausesValidation="false"
Text="Submit Form"
OnClientClick="validate()" />
javascript:
function validate () {
if (jQuery("#form1").valid()) {
jQuery(this).prop('disabled', true); // prevent multiple submits
return true;
} else {
return false;
}
});