Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更新面板与jquery验证冲突_Jquery_Asp.net_Validation_Asp.net Ajax_Updatepanel - Fatal编程技术网

更新面板与jquery验证冲突

更新面板与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()等) 有人能帮我更多

我一直在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" />
          &nbsp;
          <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”)也不起作用。我会很快给你发代码副本。。。