2011-06-03 21 views
3

我想提出一個網站,我已經喜歡與它相關聯的電子郵件領域和驗證表達式表單字段。驗證是在文本更改時啓動的。但我希望它執行「提交」按鈕點擊事件。 我已經搜索,但無法找到我的問題的解決方案。請告訴我爲什麼會發生這種情況,我該如何解決這個問題。我是這個網絡開發領域的新手,所以需要你們的幫助。如何驗證按鈕點擊表情在asp.net C#

在此先感謝!

哈馬德

回答

6

您可以禁用顯示驗證本身的錯誤,而是讓這將在您點擊提交後,才驗證摘要。

像這樣:

<asp:RequiredFieldValidator runat="server" ControlToValidate="txtEmail" ValidationGroup="vRegister" Display="None" ErrorMessage="Email field cannot be empty"></asp:RequiredFieldValidator> 

,然後申報驗證摘要:

<asp:ValidationSummary runat="server" ID="vSummary" ValidationGroup="vRegister" DisplayMode="BulletList" /> 
+0

感謝的人這真的幫助! – Hamad 2011-06-03 18:19:41

1

你只需要找的驗證類型控件驗證輸入? 如果是這樣看待屬性EnableValidation並將其設置爲true。這樣做會在button_Click事件執行之前強制驗證文本框。

1

試試這個:

<asp:TextBox ID="txtName" runat="server" Height="23px" 
Width="252px"></asp:TextBox> 
<asp:RequiredFieldValidator ID="rfvName" runat="server" 
ErrorMessage="*" ControlToValidate="txtName" 
ValidationGroup="vadd"></asp:RequiredFieldValidator> 
+0

我不認爲這是什麼,他是問,當文本改變時,驗證器驗證,他詢問如何不這樣做,並驗證它提交代替。 – stephenbayer 2011-06-03 17:57:00

2

你應該做的是改變EnableClientScript的假值。然後從後面的代碼中調用驗證(應始終這樣做,因爲用戶可以禁止其客戶端驗證。安全規則1,絕不信任客戶端)

EnableClientScript:獲取或設置一個值,該值指示客戶端驗證已啓用。

<asp:TextBox ID="txtName" runat="server"></asp:TextBox> 
<asp:RequiredFieldValidator ID="rfvName" runat="server" EnableClientScript="false" 
ErrorMessage="*" ControlToValidate="txtName" ></asp:RequiredFieldValidator> 

代碼背後:

protected void btnSave_Click(object sender, EventArgs e) 
    { 
      if (Page.IsValid) 
      { 
       //Do stuff 
      } 
      //No need for else, the validations should display accordingly 
    } 

其他資源:http://weblogs.asp.net/rajbk/archive/2007/03/15/page-isvalid-and-validate.aspx

+0

這是真正的答案。爲我工作。謝謝 – Fandango68 2016-02-26 00:50:17

0

的按鈕本身「導致驗證」屬性發射的其餘部分之前將自動迫使你的網頁,以滿足您的驗證規範與按鈕按下相關的代碼。

0

如果我明白你的問題,你需要創建一個相同的驗證小組對每個在你的aspx頁面驗證控制。您還需要具有相同驗證組的驗證摘要。而atlast在提交按鈕在.aspx頁面就不得不提到同樣的驗證組...