2010-10-08 49 views
1

我在Chrome中使用我的ASP.NET 4應用程序時出現了一些問題& Safari(適用於Firefox和IE)。必需的字段驗證程序在Chrome瀏覽器和Safari瀏覽器中點擊時具有CausesValidation =「false」

我用下面的代碼按鈕聲明:

<asp:Button ID="btnEOI1" runat="server" CssClass="buttonCSS" Text="Lodge an Expression of Interest" 
         OnClick="btnEOI_Click" CausesValidation="False" /> 

在代碼隱藏文件中,我有以下代碼:

protected void btnEOI_Click(object sender, EventArgs e) 
{ 
    Response.Redirect("Default.aspx", true); 
} 

而且在頁面上是具有兩個LoginControl RequiredFieldValidators和RegularExpressionValidator:

<asp:requiredfieldvalidator id="UserNameRequired" runat="server" ControlToValidate="UserName" 
    ErrorMessage="Please enter your User Name." SetFocusOnError="true" Display="None"> 
</asp:requiredfieldvalidator> 

<asp:RegularExpressionValidator runat="server" id="RegularExpressionValidator1" 
    ControlToValidate="UserName" 
    ErrorMessage="Please enter your User Name without spaces." ValidationExpression="[\S]+" 
    Display="None" SetFocusOnError="true" > 
</asp:RegularExpressionValidator>         

<asp:requiredfieldvalidator id="PasswordRequired" runat="server" ControlToValidate="Password" 
    ErrorMessage="Please enter your Password." SetFocusOnError="true" Display="None"> 
</asp:requiredfieldvalidator> 

當我單擊按鈕我在Chrome和Safari中,即使按鈕的CausesValidation =「false」,UserNameRequired和PasswordRequired驗證程序也會觸發。在IE或Firefox中不會出現驗證錯誤。

如何停止驗證器在Chrome和Firefox中執行操作?

+0

你有更新到最新的asp.net ajax庫嗎? – Aristos 2010-10-08 07:49:52

+0

我們目前使用與.NET Framework 4.0一起安裝的標準庫。 – Anthony 2010-10-08 08:34:38

回答

1

事實證明,我們有一些JavaScript用於防止雙擊提交表單[0](在這種情況下是登錄控制)。

+0

我有一個RadioButtonList相同的問題http://stackoverflow.com/questions/7248780/required-field-validator-with-safari-5-1驗證發射一旦用戶從列表中選擇一個值,但不會點擊提交按鈕。 您是否遇到了此問題的根源? – suggy1982 2011-09-02 15:11:38

+0

@ suggy1982 - 在我的情況下,這是因爲我們在某個javascript中使用表單[0]進行提交。刪除代碼後,我們在瀏覽器之間沒有任何問題。我讀了你的問題 - 這是一個奇怪的問題。我在幾個地方使用嚮導控制,並且發現有時很難處理。 – Anthony 2011-09-02 22:31:26

1

我剛剛在空白頁面中測試了您的代碼,並且它在所有瀏覽器中都能正常工作。你可以嘗試使用Validation Groups

只需爲UserNameRequired,RegularExpressionValidator1,PasswordRequired和您的登錄按鈕設置相同的組。

+0

對不起,延遲 - 將所有驗證器放入驗證組並不能解決問題。 – Anthony 2010-10-20 01:15:27

0

我不確定這是否與您的問題相關,但發現問題RequiredFieldValidatorsDisplay="Dynamic"設置爲它。

刪除它解決了一個問題我有一些驗證器沒有正確顯示在Chrome。過去曾有其他一些實例表明,添加有助於解決問題。

相關問題