0

考慮以下ASPX:的RequiredFieldValidator用的ValidationSummary不工作回車鍵空白文本框裏面

<asp:ValidationSummary ID="vSummary" runat="server" CssClass="error-message" HeaderText="<p>Please correct the following errors with your profile.</p>" ShowMessageBox="false" DisplayMode="BulletList" ShowSummary="true" /> 

<asp:TextBox ID="txtTest" runat="server" ClientIDMode="Static"></asp:TextBox> 
<asp:RequiredFieldValidator ID="rfv" runat="server" Display="None" ErrorMessage="Enter a value in the textbox." ControlToValidate="txtTest"></asp:RequiredFieldValidator> 

<asp:Button ID="btn1" runat="server" Text="Button 1" OnClick="btn1Click" ClientIDMode="Static" /> 

對於文本輸入到文本框,行爲與預期的一切。

點擊按鈕提交表格/按下'輸入',而在文本框內提交表格。

但是,當文本框爲空時,按'enter'不會執行任何操作。按下按鈕將按預期顯示驗證摘要,但按下「輸入」不會。

如何在空白文本框內按下「Enter」鍵後進行驗證摘要顯示?

+0

你嘗試通過JavaScript調用頁面驗證? – 2013-03-12 21:26:37

+0

return Page_ClientValidate(「optionalValidationGroup」); – 2013-03-12 21:27:50

回答

1

由於某些原因,當您點擊輸入錯誤時,ValidationSummary控件沒有顯示。但是,如果您在RequiredFieldValidator Display中更改爲「Dynamic」,則會看到錯誤消息。

更新:要克服此問題,請嘗試按照this文章中的說明操作。

對於懶惰的:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
      // Add new attribute to form1 event to fire when enter key submit button click event 

      form1.Attributes.Add("onkeydown", "javascript: return WebForm_FireDefaultButton (event, '" + ButtonName.ClientID + "')"); 

      // Allow you to use enter key for sumbit data 
      ClientScript.RegisterHiddenField("__EVENTTARGET", "ButtonName"); 
    } 
} 

最後:

// Add this code to div section on the form1 ASPX page. 

<div id="inputArea" onkeypress="javascript:return WebForm_FireDefaultButton(event,'ButtonName')"> 
0

這種行爲是因爲你的文本框被確認,但確認的消息無法顯示,因爲你Display = "none"關閉了它。它正在客戶端進行驗證,因此,回發不會因空文本而發生。

如果您從頁面中刪除驗證控件(這不是您想要的),您的文本框將開始回發。我想你不希望消息顯示每個控件,只是在驗證總結,否則,這是最簡單的方法