javascript - 表单提交未在 ASP.NET 页面上回发
问题描述
我在 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,但页面不会回发并提交。我一直在拔头发试图弄清楚这一点。是否有明显的原因表明它无法正常工作?我错过了什么?
解决方案
向按钮添加一个OnClientClick
事件,该事件将调用验证,而不是.on("click")
使用 jquery 添加事件处理程序。
<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;
}
});
推荐阅读
- swift - 将模型保存到 Userdefaults 会使应用程序迅速崩溃
- android - 如何调查为什么 gradle build 使用缓存的资源 ID
- java - Spring preAuthorize SpEL查询的日志结果?
- java - 压缩机是抽象的;无法实例化
- ios - Xcode 找不到任何与“应用程序名称”匹配的 iOS 应用程序开发配置文件
- java - 如何修复异常:getOutputStream() 已为此响应调用?
- python - 如何在 Python 的图形中同时使用字符串和数字标记 x&y 值
- python - 如何删除熊猫数据框中的多个标题行
- java - 如何为我的代码设置限制问题
- javascript - 如何删除文档数组中的键