2009-02-27 56 views
2

我已經創建了一個禁用驗證的HtmlButton的服務器控件。.NET HtmlButton總是觸發驗證程序

<button runat="server" causesvalidation="false" /> 

不是輸入按鈕!!!

<input type="button" runat="server /> 

我在窗體上有一堆驗證器,當我點擊HtmlButton時他們仍然運行驗證器。如果我使用輸入按鈕,則沒有問題,驗證器也不會運行。

這是預期的行爲還是這是一個錯誤?

回答

0

仍然運行驗證程序 - 您是指客戶端,服務器端還是兩者?

+0

它只在服務器端運行。我創建了新的驗證器,它仍然運行它們。在 – Alex 2009-03-01 01:25:30

2

我試過了,它按預期工作。我認爲你應該檢查你的代碼,也許你在服務器端啓用它。

<button runat="server" ID="btnSubmit" causesvalidation="false" 
onserverclick="SubmitButton_Click"></button> 

只是爲了克服這個問題,您可以將驗證組添加到驗證中。

+0

後面的代碼中沒有啓用/禁用它們在這種情況下,使用`HtmlButton`而不是服務器端`asp:Button`? – abatishchev 2010-05-21 14:17:14

0

您的按鈕上沒有標識?這可能會導致一個問題,它不知道按鈕被調用的內容,因此不會加載它的所有屬性。遠射,但你永遠不知道。

+0

對不起,我的壞。我的代碼中有一個id,但爲了簡潔,我沒有在示例中包含它 – Alex 2009-03-05 23:46:37

0

取決於其中使用的驗證,如果他們在同一個group.you上添加驗證限制驗證組。如果它們不在一個組中,也許表單的發佈到服務器使其驗證控件。

:)

+0

您能否提供一個可用的示例? – Lizz 2013-01-09 22:17:23

0

您所要做的就是設置屬性type =「button」。默認值必須提交。