2011-11-28 62 views
0

我有一個母版頁,並基於該母版頁,我創建了一個帶有TextBox和兩個驗證控件的頁面,用於RequiredValidatorRegularExpressionValidator和一個ValidationSummaryASP.NET輸入鍵

按在文本框輸入鍵的時候,我預計雙方驗證表明其對的ValidationSummary的errorMessage但那不是發生了什麼,當我按下頁面上的按鈕,它纔會起作用。

根據此頁我用<asp:panel>DefaultButton屬性包裝了我的代碼,但它沒有解決問題。 http://www.codeproject.com/KB/aspnet/aspnet_Enter_key_problem.aspx

我想知道這裏的問題是什麼以及是否有任何解決方法?

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server"> 

    **<asp:Panel runat="server" DefaultButton="EmailSend">** 
    <table style="width: 100%"> 
     <tr> 
      <asp:ValidationSummary ID="EmailValidation" runat="server" CssClass="failureNotification" 
       ValidationGroup="EmailValidation" /> 
     </tr> 
     <tr> 
      <td style="width: 76px"> 
       Email: 
      </td> 
      <td class="style1"> 
       <asp:TextBox ID="EmailForget" runat="server" Width="244px"></asp:TextBox> 
      </td> 
      <td> 
       <asp:RequiredFieldValidator ID="EmailRequiered" runat="server" ControlToValidate="EmailForget" 
        CssClass="failureNotification" ErrorMessage="RequiredFieldValidator" ValidationGroup="EmailValidation">*</asp:RequiredFieldValidator> 
       <asp:RegularExpressionValidator ID="EmailRegular" runat="server" ControlToValidate="EmailForget" 
        CssClass="failureNotification" ErrorMessage="email required" 
        ValidationGroup="EmailValidation">*</asp:RegularExpressionValidator> 
      </td> 
     </tr> 
     <tr> 
      <td style="width: 76px"> 
       &nbsp; 
      </td> 
      <td class="style1"> 
       <asp:Button ID="EmailSend" runat="server" Text="send" Width="56px" ClientIDMode="Static" /> 
      </td> 
      <td> 
       &nbsp; 
      </td> 
     </tr> 
    </table> 
    **<asp:Panel>** 
</asp:Content> 
+0

你嘗試過加入驗證組到ASP:按鈕呢? – Jacques

+0

您錯過了您的ValidationSummary控件周圍的​​標籤,請先將其添加!在我真正的代碼按鈕,驗證組 – Nalaka526

+0

@Jacques是的,我已經添加了ASP。謝謝。 – 1AmirJalali

回答

0

嘗試增加該代碼

<script type="text/javascript"> 

    if (document.addEventListener) {//if Firefox 
     document.addEventListener("keypress", fireFoxHandler, true); 
    } else { 
    document.attachEvent("onkeyup", ieHandler); 
    } 

    function fireFoxHandler(evt) {    
     if (evt.keyCode == 13) { 
      document.getElementById("EmailSend").click(); 
     } 
    } 

    function ieHandler(evt) { 
     if (evt.keyCode == 13) { 
      document.getElementById("EmailSend").click(); 
     } 
    } 

</script> 

找到此溶液here。 (我沒有在母版的情況下,請檢查這個......)

+0

@ Nalaka525非常感謝它,即使在MasterPage場景中也是如此。 – 1AmirJalali

+0

我發現這個http://forums.asp.net/t/1100563.aspx/1這就解釋了爲什麼的ValidationSummary和Enter鍵不能一起工作。 – 1AmirJalali

0

我解決了這個問題就像個是:

protected void Page_Load(object sender, EventArgs e) 
{ 
textboxusername.Attributes.Add("onKeyPress", "javascript:if (event.keyCode == 13)  __doPostBack('" + LinkButton1.UniqueID + "','')"); 
    textboxpassword.Attributes.Add("onKeyPress", "javascript:if (event.keyCode == 13) __doPostBack('" + LinkButton1.UniqueID + "','')"); 
} 

,這是鏈接..

<asp:LinkButton ID="LinkButton1" runat="server" class="btn" OnClick="LinkButton1_Click"> 
+0

感謝您的回覆,我試過我們的腳本,但它沒有奏效。 我也在頁面loadPage上添加這兩行。 Form.DefaultButton = EmailSend.UniqueID; Page.Form.DefaultFocus = EmailForget.ClientID; 它也沒有工作。 – 1AmirJalali