2012-11-29 79 views
0

我有一個按鈕在驗證組中,並且當頁面上的任何文本框沒有被填充onClick不會運行,就像它假設,但OnClientClick將跑。OnClientClick按鈕仍然運行,即使在驗證組中

<asp:Button ID="btnSend" runat="server" Text="Send" ValidationGroup="send" OnClick="sendNow" 
    OnClientClick="document.getElementById('SendingMessage').style.visibility = 'visible'" /> 

有沒有辦法阻止onclientclick像驗證組一樣運行onClick?

回答

1

onclick是服務器端事件。 onclientclick是客戶端(javascript)操作。在這種情況下,按鈕被點擊,因此onclientclick會執行。如果驗證通過,則瀏覽器將發佈到表單並執行onclick事件。如果驗證失敗,則根據驗證失敗的位置會發生以下兩種情況之一。

如果驗證在客戶端上失敗,則請求永遠不會發送到服務器。如果服務器上的驗證失敗,則表單將發佈到服務器,但輸入的驗證失敗並且onclick事件不會執行。

在你的情況下,你會想在onclientclick事件中添加一些客戶端代碼來驗證用戶的輸入。如果驗證返回true,則繼續運行腳本。如果驗證失敗則不。應該有一種方法可以綁定到客戶端上的webforms驗證。我不知道該怎麼做。

相關問題