2010-03-25 68 views
2

我有一個regularexpression驗證器來驗證有效的電子郵件。我的表單上有兩個按鈕。提交和撤消。即使當CausesValidation =「false」時,Asp.net regularexpressionvalidator也會觸發

上的撤消,我們正在恢復的頁面狀態爲默認狀態

提交有其設置的ValidationGroup而撤消多年平均值有任何和的ValidationGroup =的CausesValidation「假」。

現在,當我導航到頁面並輸入無效的電子郵件地址時,我直接單擊撤消。驗證器觸發並停止發佈我的頁面。但是,如果我按Tab鍵並導航到其他控件,然後單擊撤消,驗證程序將顯示錯誤消息,但回發並繼續執行。

這很奇怪,我希望頁面回發沒有任何錯誤消息,當我點擊undo.how來實現它。

<tec:ThemedImageButton runat="server" ID="imgbtnSave" OnClick="imgbtnSave_Click" 
    ValidationGroup="CustomerGroup"/> 
<tec:ThemedImageButton runat="server" ID="imgbtnCancel" CausesValidation="false" 
               OnClick="imgbtnCancel_Click" /> 

這些都是添加了themes.CustomerGroup正常圖像按鈕是爲我的文本框和的RegularExpressionValidator驗證組

+0

你可以發佈你的代碼2按鈕和驗證器?也發佈您正在使用的ASP.NET版本。 – Kelsey 2010-03-25 15:30:09

+0

借調,更多信息將在這裏幫助。 – 2010-03-25 15:31:11

+0

您是否將按鈕,驗證器,文本框和驗證摘要中的驗證組設置爲相同? – 2010-03-25 15:33:00

回答

0

你可能一下復原,而你的重點仍然是電子郵件文本中?如果是這樣,也許問題是,文本框的初始模糊事件正在觸發,這反過來又調用了電子郵件驗證程序並阻止了點擊/提交。

首先要嘗試的是確保您可以輸入無效的電子郵件地址,將焦點移到頁面的完全不同的區域,然後按撤消以確定是否是原因。

0

仔細檢查您的設置。 您可能想要檢查後面的代碼,以確保不會覆蓋那裏的控制設置。例如,在代碼中,您可能將CausesValidation設置爲「True」或類似的東西。

0

直到你發佈你可以做以下的在撤銷按鈕的更多信息:

<asp:Button ID="btnUndo" runat="server" Text="Undo" 
    OnClientClick="Page_ValidationActive = false;" 
    OnClick="btnUndo_Click" /> 

我不建議這樣做,因爲它可能會解決你的問題,但實際上並不能說明什麼接線錯誤了,但Page_ValidationActive = false;將禁用您的頁面上的所有客戶端驗證。

+0

我已經嘗試在onclientclick上粘貼javascript函數,但它不會觸發。但是,如果我第二次按按鈕,JavaScript會觸發。 – Rohit 2010-03-25 15:49:30

+0

感謝Kelsey 我有類似的問題:我檢查電子郵件文本框上的JavaScript onblur事件的驗證,但一旦驗證返回false在這個文本框,我需要點擊兩次取消按鈕...「Page_ValidationActive = false;」解決這個問題。 – 2011-04-11 08:31:24

相關問題