还有一个子程序是更新整个页面的验证状态:
//
更新整个页面的验证状态
function ValidatorUpdateIsValid()
{
Page_IsValid = AllValidatorsValid(Page_Validators);
}
// 检查所有验证控件,一个未通过,就返回不通过
function AllValidatorsValid(validators)
{
if ((typeof(validators) != "undefined") && (validators != null))
{
var i;
for (i = 0; i < validators.length; i++)
{
if (!validators[i].isvalid)
return false;
}
}
return true;
}
function ValidatorUpdateIsValid()
{
Page_IsValid = AllValidatorsValid(Page_Validators);
}
// 检查所有验证控件,一个未通过,就返回不通过
function AllValidatorsValid(validators)
{
if ((typeof(validators) != "undefined") && (validators != null))
{
var i;
for (i = 0; i < validators.length; i++)
{
if (!validators[i].isvalid)
return false;
}
}
return true;
}
这些子程序分析完成后,最后要回到我们的按钮点击事件来,通过以上代码走一着,Page_BlockSubmit被设置为true,即阻塞网页的提交。
这时,再去主网页看,提交的代码:οnsubmit="javascript:return WebForm_OnSubmit();"
function
WebForm_OnSubmit()
{
//有验证控件的情况下
if (typeof(ValidatorOnSubmit) == "function" && ValidatorOnSubmit() == false) return false;
return true;
}
function ValidatorOnSubmit()
{
if (Page_ValidationActive)
//有验证控件的情况下
return ValidatorCommonOnSubmit();
else
return true;
}
// 返回页面阻塞提交的相反值,并把页面阻塞状态清空
function ValidatorCommonOnSubmit()
{
Page_InvalidControlToBeFocused = null;
var result = !Page_BlockSubmit;
if ((typeof(window.event) != "undefined") && (window.event != null))
window.event.returnValue = result;
Page_BlockSubmit = false;
return result;
}
{
//有验证控件的情况下
if (typeof(ValidatorOnSubmit) == "function" && ValidatorOnSubmit() == false) return false;
return true;
}
function ValidatorOnSubmit()
{
if (Page_ValidationActive)
//有验证控件的情况下
return ValidatorCommonOnSubmit();
else
return true;
}
// 返回页面阻塞提交的相反值,并把页面阻塞状态清空
function ValidatorCommonOnSubmit()
{
Page_InvalidControlToBeFocused = null;
var result = !Page_BlockSubmit;
if ((typeof(window.event) != "undefined") && (window.event != null))
window.event.returnValue = result;
Page_BlockSubmit = false;
return result;
}
最后结果是:当输入框不满足验证控件的要求时,验证控件显示出来,网页阻止提交。