2011-12-27 57 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