2009-10-09 79 views
1

是否有可能捕獲在javascript中點擊了哪個按鈕?我有驗證設置,但我只希望它驗證一個按鈕被單擊時,並沒有其他方式。捕獲哪個按鈕被點擊導致驗證

請注意,我有3個文本框就像下面。這是一個電話號碼進入破解3個文本框。

我想要做的就是把和「& &」條件中的JavaScript如果聲明稱,該args.IsValid單擊該按鈕時,設置爲false。現在它在Tab鍵上進行驗證並點擊其他控件。我只想讓它通過點擊提交按鈕來驗證。

function checkPhNumn(sender, args) { 
     alert(window.event); 
     if (phnavalue.value != '' || phnevalue.value != '' || phnnvalue.value != '') { 
      if (phnnvalue.value.length < 4) { 
       args.IsValid = false; 
      } 
      else { 
       ValidatorEnable(RFV2, true); 
       ValidatorEnable(RFV3, true); 
      } 
     } 
    } 

<ajaxToolkit:ValidatorCalloutExtender ID="ValidatorCalloutExtender4" runat="server" 
          TargetControlID="phnnVal" 
          HighlightCssClass="validatorCalloutHighlight" 
          ></ajaxToolkit:ValidatorCalloutExtender> 

<asp:TextBox ID="witPhnn" runat="server" MaxLength="4" Width="50pt"></asp:TextBox> 

         <asp:CustomValidator ID="phnNumValn" runat="server" 
          Display="None" 
          ControlToValidate="witPhnn" 
          ErrorMessage="Please enter a valid phone number." 
          SetFocusOnError="True" 
          EnableClientScript="true" 
          ClientValidationFunction="checkPhNumn" 
          ></asp:CustomValidator> 
+0

我不確定ValidationGroup是否可以幫助您。 – 2009-10-09 14:32:07

+0

不會。在這種情況下不起作用。不過謝謝。 – Eric 2009-10-09 14:42:04

回答

0

從您的CustomValidator中刪除ControlToValidate,它將在您離開文本框時刪除對驗證函數的調用。使用ValidationGroups或在所有其他按鈕上設置CausesValidation = False將阻止它們激活任何驗證。

1

您使用的是ASP.NET 2.0嗎?

如果是這樣,那麼稱爲「驗證組」的按鈕和驗證器屬性。通過爲該屬性指定一個名稱,驗證將僅針對具有匹配驗證組值的用戶進行激發。

例如,假設您的頁面上有兩個必填字段驗證程序,其驗證組值分別設置爲「group1」和「group2」。稍後添加一個按鈕控件,併爲該控件的驗證組屬性賦值「group1」。

當按下該按鈕時,只有「group1」的驗證器會實際觸發。

希望這會有所幫助!

+0

是的,但我不會幫助,因爲該按鈕會觸發整個頁面的驗證。整個頁面將在同一組中。我會盡力。感謝您的回覆。 – Eric 2009-10-09 14:39:03

+0

謝謝但它沒有奏效。 – Eric 2009-10-09 14:44:08