2010-03-29 81 views
0

我有一個帶有RegexValidator的ASP.net頁面。 RegexValidator成功顯示我的驗證錯誤文本,當用戶鍵入超出範圍的值並導航(製表符)的控件。在那一點上,即使我有SetFocusOnError =「true」,它也不會將焦點設置爲該控件。Validator.SetFocusOnError是否在沒有回傳的情況下工作?

當我點擊該頁面上的一個按鈕時,焦點似乎被設置。

是否應該在javascript檢測到問題時立即設置焦點?

回答

0

您的RegEx驗證程序是否位於命名容器中?如果是這樣,你需要做一些黑客行爲。

閱讀this獲取一些幫助和此例。

0

當您嘗試提交表單時,焦點將返回到控件。默認情況下,EnableClientScript已啓用,它執行客戶端驗證,因此否,如果驗證失敗並且瀏覽器能夠執行客戶端驗證,則不會有回發。

MSDN

使用EnableClientScript屬性 指定客戶端 驗證是否已啓用。

驗證控件始終在服務器上執行 驗證。他們也 有完整的客戶端 實現允許 支持DHTML的瀏覽器(如 Microsoft Internet Explorer 4.0和 以後)在 客戶端上執行驗證。客戶端驗證 增強了驗證過程 在將 發送到服務器之前檢查用戶輸入。這允許在提交 表單之前在客戶端上檢測到 的錯誤,從而避免了 服務器端驗證所需的信息的輪迴 。

默認情況下,此值設置爲true, 如果瀏覽器支持該值,則客戶端驗證 。

如果你想從驗證控制即時反饋,當用戶按Tab鍵關閉它,你可以設置它的ErrorMessage屬性及其Display屬性設置爲DynamicStatic

相關問題