它的原理是:asp.net頁面提交的時候會調用ValidatorOnSubmit方法(內置的),我們利用js方法的覆蓋特性,把系統內置的ValidatorOnSubmit替換成我們的版本,然後當執行ValidatorOnSubmit時屏蔽掉頁面上所有提交按鈕(也可以執行你自己的方法)
//屏蔽所有提交按鈕
function disableOtherSubmit()
{
var obj = event.srcElement;
var objs = document.getElementsByTagName('INPUT');
for(var i=0; i<objs.length; i++)
{
if(objs.type.toLowerCase() == 'submit')
{
objs.style.display = 'none';
}
}
}
//覆蓋原有ValidatorOnSubmit方法,防止2次提交
function ValidatorOnSubmit() {
if (Page_ValidationActive) {
if (ValidatorCommonOnSubmit()) {
disableOtherSubmit();
return true;
} else {
return false;
}
} else {
disableOtherSubmit();
return true;
}
}