0
我有一個使用UpdatePanel和驗證的網頁。自定義Page_ClientValidate在使用updatepanel時被覆蓋
由於內規定要求的,我一定要顯示某個自定義模型驗證失敗時,到目前爲止,我只能夠通過重寫Page_ClientValidate客戶端功能,要做到這一點:
function Page_ClientValidate(validationGroup) {
Page_InvalidControlToBeFocused = null;
if (typeof(Page_Validators) == "undefined") {
return true;
}
var i;
for (i = 0; i < Page_Validators.length; i++) {
ValidatorValidate(Page_Validators[i], validationGroup, null);
}
ValidatorUpdateIsValid();
ValidationSummaryOnSubmit(validationGroup);
Page_BlockSubmit = !Page_IsValid;
if(!Page_IsValid)
{
displayError();
}
return Page_IsValid;
}
該作品很好,但我注意到,當在UpdatePanel中使用它時,只要UpdatePanel生成新內容,似乎包含原始Page_ClientValidate的ScriptResource.axd再次被下載,因此覆蓋了我的覆蓋(如果這是有道理的)。
現在,它顯示字段旁邊的錯誤,但不會調用我的displayError函數。
有什麼建議嗎?
我想過可能會寫一些東西來監視錯誤範圍,看看它們是否可見,但不知道此時是否過度殺傷。
感謝
加文
既不。上面的Page_ClientValidate只是在我的JavaScript文件中加載了所有其他資源。其中有一個$(function(){});但這與驗證無關,因爲它與jQuery無關。謝謝;) – Gavin
是的,但如果你想要一些js運行時,UpdatePanel回發那麼你需要把它放在JS pageLoad(),否則它將只運行一次 –
這將意味着我將不得不做的窗口['' Page_ClientValidate'] = function(validationGroup){///};重寫覆蓋,再次大聲笑。這是一個可能的解決方案?我會試一試。 – Gavin