2011-12-27 56 views
1

我正在使用自定义验证程序来验证文本框内容。 每当用户离开这个文本框,我的客户端脚本被调用,在我的情况下,这有点烦人。不要在文本框的OnChange事件上触发自定义验证

我想验证只有当用户点击一个按钮(这已经发生)。 有没有什么办法可以避免在TextBoxOnChange事件上执行验证?

我的代码是在这里:

function isGroupNameUnique(sender, args) { 
     var valid = true; 

     var tokens = $('#hdnGroupNames').val().split(','); 
     var groupName = $('#<%= txtGroupName.ClientID %>').val(); 

     $.each(tokens, function (i) { 
      if (groupName == this) 
       valid = false; 
     }); 

     args.IsValid = valid; 
    } 




<asp:TextBox ID="txtGroupName" runat="server" /> 

<asp:Button ID="btnAddGroup" runat="server" Text = "Add" onclick="btnAddGroup_Click" class="bGraySmaller" ValidationGroup="AddGroup"/> 

<asp:CustomValidator ID="validatorGroupNameAlreadyExists" runat="server" ControlToValidate="txtGroupName" ErrorMessage="The Group Name has to be unique" ValidationGroup="AddGroup" ClientValidationFunction="isGroupNameUnique" /> 
+0

我的建议是,除去在自定义验证了“ClientValidationFunction”属性,并添加一个jQuery事件处理程序“btnAddGroup”按钮 – Praveen 2011-12-27 21:47:45

回答

1

CustomValidator删除ControlToValidate属性(什么就是这个属性是不是强制性的唯一验证)。在TextBox上设置相同的ValidationGroup。

<asp:TextBox ID="txtGroupName" ValidationGroup="AddGroup" runat="server" /> 
<asp:CustomValidator ID="validatorGroupNameAlreadyExists" runat="server" ErrorMessage="The Group Name has to be unique" ValidationGroup="AddGroup" ClientValidationFunction="isGroupNameUnique" /> 
+0

工程就像一个魅力,谢谢:d – JSBach 2011-12-28 12:57:19