我的頁面上有驗證摘要。我想在validationSummary填充後調用javascript函數。我怎麼能做到這一點?如何在填寫ASP.net驗證摘要時調用JavaScript函數
我想我應該在代碼後面添加一個屬性,但我無法弄清楚屬性的關鍵是什麼。
有幫助嗎?
我的頁面上有驗證摘要。我想在validationSummary填充後調用javascript函數。我怎麼能做到這一點?如何在填寫ASP.net驗證摘要時調用JavaScript函數
我想我應該在代碼後面添加一個屬性,但我無法弄清楚屬性的關鍵是什麼。
有幫助嗎?
我不認爲這是可能的。但是,可以通過在回發控件上設置OnClientClick
來攔截驗證。然後,您可以檢查全局JavaScript變量Page_IsValid
的驗證結果。
要記住的一件事是,當頁面上沒有驗證器時,Page_IsValid
將是未定義的。
您將需要調用javascript函數Page_ClientValidate()
來啓動連接到頁面控件的ASP.NET驗證。一旦這個被調用,布爾值將被正確設置。
這是我如何使用它的一個例子。如果ASP.NET驗證成功,我禁用該按鈕,否則該按鈕將保持啓用狀態,並向用戶顯示驗證摘要。 OnClientClick
來自ASP:按鈕控件。
OnClientClick="javascript:Page_ClientValidate(); if (Page_IsValid==true) { this.disabled=true; }"
我開始實施@EverettEvola的解決方案,同時也驗證邏輯被多次調用並顯示多個ValidationSummary彈出窗口。我的解決方案如下:
在按鈕(在我的情況的按鈕是一個提交按鈕)
OnClientClick="return CustomValidationOnClick()"
而且CustomValidationOnClick()
function CustomValidationOnClick(source, args) {
//Manually kickoff page validation
//This call will display the Validation summary popup if page is invalid
Page_ClientValidate();
//Page_IsValid set by the result of the Page_ClientValidate() call
if (Page_IsValid == true) {
this.disabled=true;
return true; //if Submit button return true to continue form submit
}
else {
//do whatever here
return false; //if Submit button return false to cancel form submit
}
}
這似乎是工作,但實際上它打印兩次ValidationSummary的ShowMessageBox :( – markzzz 2011-10-26 13:13:25