JQuery / ASP.Net按钮单击“验证后停止工作”

时间:2011-12-16 02:57:25

标签: jquery

这是注入到页面中的.cs代码中的代码以及ASCX中与此代码一起使用的按钮标记。

加载页面时,如果我输入电子邮件并单击按钮,则会触发我的代码。如果我将电子邮件字段留空,则验证会根据需要对其进行标记(这是正确的)。如果我然后在字段中输入一个值并再次单击该按钮,我的代码后面就不会被击中。这是非常一致的,如果验证将值标记为无效,则按钮单击将永远不会被后面的代码命中。

非常感谢任何帮助。

  <asp:Button ID="btnContinue" runat="server" onclick="btnContinue_Click" Text="Continue"/>


    @"$(document).ready(function() 
    {
       $('#" + this.btnContinue.ClientID + @"').click(function () {                 
          alert('In button continue click');             
       }); 

       $('#aspnetForm').validate({
          rules: 
          {" +
             this.txtEmail.UniqueID + @":
             {
                 required: true
             }
          }, 
          messages: 
          {" +
             this.txtEmail.UniqueID + @":
             {
                 required: 'Email is required.'
             }
          }
       });
    });";

我忽略了(这是一个漫长的深夜),这发生在一个贬低到SharePoint 2010的网站上。事实证明,我们的设计师修改了导致问题的母版页。如果我使用default.master它工作正常。我正在评论修改后的母版页的各个部分,以找出导致问题的原因。

2 个答案:

答案 0 :(得分:0)

在验证表单后尝试验证按钮clientID的值,如果它在点击事件触发后发生变化,那就是它。使用$('#btn_continue')而不是

答案 1 :(得分:0)

   $('#" + this.btnContinue.ClientID + @"').live('click', function () {                 
      alert('In button continue click');             
   }); 

那将保持它的运作。验证后重新加载时,您将失去对元素的绑定。

http://api.jquery.com/live/

如果ID存在问题,您可以为其添加一个类:

的Javascript

   $('.theButtonClass').live('click', function () {                 
      alert('In button continue click');             
   }); 

ASPX

   <asp:Button ID="btnContinue" class="theButtonClass" runat="server" onclick="btnContinue_Click" Text="Continue"/>