我正在尝试使用jquery validation插件,但我的表单位于更新面板中。因此,即使在提交表格后应用验证,它也会验证并显示所需的消息,但不会持续2秒,然后提交表格。
解决方法是什么?
我也试过这个。
<asp:UpdatePanel ID="AddUserPanel" runat="server"
ChildrenAsTriggers="false"
UpdateMode="Conditional">
但这似乎也没有帮助。
答案 0 :(得分:3)
如果您使用脚本管理器,则需要以下l33t代码:
$(function () {
//Code that runs before update panel is fired.
//Listen for update panel
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
//Re-initialize jquery after an auto post back.
function EndRequestHandler(sender, args) {
//Do work after update panel fires.
}
});
所以基本上你有重复的代码,EndRequestHandler()之外的代码和里面的代码。
答案 1 :(得分:0)
你需要返回false并在onsubmit上停止事件冒泡,如下所示:
$("form").submit(function (e) {
e.preventDefault();
return(false);
});
但是我对ASP一无所知,所以我不知道在这种情况下是否会有所帮助。
也许您需要在加载此面板中的内容后使用.live
或重新附加处理程序,因此onsubmit事件是否绑定到它?
答案 2 :(得分:0)
Asp.net WebForms使用提交表单的__doPostback()
函数。
这就是我要做的事情:
检查表单提交执行以查看事情是否按预期工作,因此首先进行验证(我很确定它会这样做,因为你确实得到了这些消息)并检查每个部分的代码。
如果验证不能通过返回调用false
的{{1}}或两者来阻止默认事件执行(冒泡),那么应该将其更改为与Asp.net WebForms充分协作。
如果验证方面的一切似乎都很好,您应该更改preventDefault()
功能。听起来确实很糟糕,但有时这样的事情必须要做。复制现有代码并添加其他检查。没什么可担心的。
同时检查此Stackoverflow question。
哦,天哪。只需对此进行Google搜索,并仅包含stackoverflow结果:jQuery validation webforms site:stackoverflow.com
答案 3 :(得分:0)
如果我没记错的话,你可以使用常规按钮而不是asp:按钮,它不会导致回发。如果是这种情况,那么您可以使用JavaScript来更新UpdatePanel。