验证控件网页代码分析2

还有一个子程序是更新整个页面的验证状态:

// 更新整个页面的验证状态
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,即阻塞网页的提交。
这时,再去主网页看,提交的代码:onsubmit="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;
}

最后结果是:当输入框不满足验证控件的要求时,验证控件显示出来,网页阻止提交。

你可能感兴趣的:(JavaScript,webform)