更新面板与jquery验证冲突
我一直在submit click中使用jQuery验证。我的页面包含两个div 当我将两个div放在单个更新面板中时,问题出现了,验证停止工作,错误显示 未捕获的TypeError:对象[Object Object]没有方法“validate” 当更新面板被注释时,所有的工作都很好,但是有完整的回发(我不想要) 我已经使用了在internet上找到的几乎所有东西(noConflicts、Sys.WebForms.PageRequestManager.getInstance()等) 有人能帮我更多吗 代码: 负责人:更新面板与jquery验证冲突,jquery,asp.net,validation,asp.net-ajax,updatepanel,Jquery,Asp.net,Validation,Asp.net Ajax,Updatepanel,我一直在submit click中使用jQuery验证。我的页面包含两个div 当我将两个div放在单个更新面板中时,问题出现了,验证停止工作,错误显示 未捕获的TypeError:对象[Object Object]没有方法“validate” 当更新面板被注释时,所有的工作都很好,但是有完整的回发(我不想要) 我已经使用了在internet上找到的几乎所有东西(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>
jQuery(文档).ready
(
函数(){
jQuery(“#btn_Save”).live(“单击”,函数(){
jQuery(“#form1”).validate
(
{
规则:{
txtContactPerson:“必需”
},
信息:{
txtContactPerson:“*请输入联系人姓名”
}
}
);
});
}
);
正文:
更新面板中简单的两个列表div实际上,您可以对服务器表单使用jQuery验证。但是有了UpdatePanel就变得很棘手了。尝试以下方法: 在标题中:
<script type="text/javascript">
$(function () {
$("#form1").validate(
{
rules: {
'<%= txtContactPerson.ClientID %>': "required"
},
messages: {
'<%= txtContactPerson.ClientID %>': " * Please enter Contact Person Name"
}
});
})
</script>
$(函数(){
$(“#表格1”)。验证(
{
规则:{
'':“必须”
},
信息:{
'':“*请输入联系人姓名”
}
});
})
在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>
Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(initializeRequestHandler);
函数initializeRequestHandler(发送方,参数){
if(args.get_postBackElement().id=''&$(“#form1”).valid()!==true){
参数设置\取消(真);
}
}
标记:
<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\u Save
,只需删除此代码:args.get\u postBackElement().id=''&
您能用示例解释标记的意义吗?上面的查询是用代码示例编辑的,根据我的经验,尝试将MS Ajax和jQuery与web表单混合使用充满了“陷阱”这样地。如果您真的想使用UpDeaPeNEL,那么考虑使用标准的ASP.NET验证程序控件。但是,如果您真的想使用jQuery验证和Ajax,那么可以考虑使用一个正常的窗体(即,没有RunAT=服务器)的jQuery表单插件,它是一个处理后变量的处理程序。我不能使用没有RunAT=“Server”的表单,BCOZ我在DIOS中使用GrdVIEW和ASP:Trabox。它仍然不起作用,显示的错误是:(1) 未捕获类型错误:对象[Object]没有方法“验证”(2)未捕获类型错误:对象[Object]没有方法“valid”验证插件未被引用。请检查指向jquery.validate.js的链接及其内容。确保将src属性更改为以下内容:''我更改了提到的链接,但仍然没有成功,两个错误仍然存在。据我所知,validate.js脚本没有任何错误,bcoz它适用于删除更新面板后立即单击。如果您能提供电子邮件,我可以将页面和文件发送给您。顺便问一下,您使用的是哪个框架版本?如果是3.5版本,请尝试将选择器从$(“#form1”)
更改为$(“#aspnetForm”)
我使用的是3.5,$(“#aspnetForm”)也不起作用。我会很快给你发代码副本。。。