我一直在提交点击中使用jQuery验证。我的页面包含两个div。
当我将两个div放在单个更新面板中时,问题就出现了,验证停止工作,错误显示
未捕获TypeError:对象[object Object]没有方法'validate'
当评论更新面板时,一切正常,但有完整的回发(我不想要)。
我已经使用了几乎所有的东西,我在互联网上找到了(noConflicts,Sys.WebForms.PageRequestManager.getInstance()等)。
任何人都可以帮助我吗?
代码:
负责人:
<script type="text/javascript" src="../../Javascript/Validators/jquery.validate.js"></script>
<script type="text/javascript">
jQuery(document).ready
(
function () {
jQuery("#btn_Save").live("click", function () {
jQuery("#form1").validate
(
{
rules: {
txtContactPerson: "required"
},
messages: {
txtContactPerson: " * Please enter Contact Person Name"
}
}
);
});
}
);
</script>
身体:
更新面板中的简单两个列表div
答案 0 :(得分:0)
实际上,您可以对服务器表单使用jQuery验证。但是,UpdatePanel变得棘手。尝试以下方法:
在标题中:
<script type="text/javascript">
$(function () {
$("#form1").validate(
{
rules: {
'<%= txtContactPerson.ClientID %>': "required"
},
messages: {
'<%= txtContactPerson.ClientID %>': " * Please enter Contact Person Name"
}
});
})
</script>
在ScriptManager控制之后:
<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(initializeRequestHandler);
function initializeRequestHandler(sender, args) {
if (args.get_postBackElement().id == '<%= btn_Save.ClientID %>' && $("#form1").valid() !== true) {
args.set_cancel(true);
}
}
</script>
标记:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:TextBox runat="server" ID="txtContactPerson" />
<asp:Button ID="btn_Save" runat="server" Text="Submit" />
</ContentTemplate>
</asp:UpdatePanel>
如果您想要仅针对btn_Save
停用异步回发,请删除此代码:args.get_postBackElement().id == '<%= btn_Save.ClientID %>' &&