2011-09-19 405 views
0

我有一個文本框,我做了客戶端和服務器端驗證的CustomValidation, 我該如何同時激發客戶端和服務器端驗證?現在服務器端驗證僅在客戶端驗證之後觸發。如何同時觸發客戶端和服務器端驗證?

是否有可能?

+1

目的是什麼? – NOtherDev

+0

一次顯示所有可能的錯誤。 – Roshe

回答

3

基本上:不,如果您需要,您可以一個接一個地上升,但客戶端驗證可以避免必須調用服務器才能驗證。如果您仍然需要調用服務器,那麼您爲什麼會打擾編寫客戶端驗證腳本?

編輯:

如果你想被貼在表格前的服務器驗證發生,我建議你使用Ajax調用您客戶端驗證腳本中的服務器驗證程序。它需要一個小竅門,因爲Ajax按定義是異步的,而客戶端驗證不是。從這裏開始:http://www.codeproject.com/KB/ajax/AjaxValidation.aspx

+0

我在客戶端進行電子郵件ID格式驗證,並對數據庫中的電子郵件ID存在進行服務器端驗證。 用此實現用戶可能首先看到客戶端驗證錯誤,然後只有服務器端驗證錯誤。用戶聲稱他們需要立即查看所有可能的錯誤。我有CustomValidator,它既執行客戶端驗證,也執行服務器端驗證。 – Roshe

1

客戶端和服務器端驗證可以有不同的目的,並且一個總是假定通過客戶端驗證保持安全。

默認情況下,一旦客戶端事件結束,請求將發送到服務器,這就是頁面循環的發生過程。但是,如果您需要直接發送服務器請求,則需要使用AJAX併發送異步請求。

但從邏輯上講,建議分別處理兩個驗證,以獲得更清潔和更好的方法。

1

我猜你有一些的CustomValidator,只有擁有服務器端執行,這之後您定期校驗已運行運行。這樣,用戶首先會看到來自常規驗證器的驗證錯誤,並在修復這些驗證錯誤後,必須通過自定義驗證器,這是令人困惑的。 我建議關閉所有客戶端驗證(將EnableClientValidation設置爲false),並僅運行整個服務器端。這樣所有的驗證器就可以同時運行。

Menno

相關問題