如果我们在文本框中什么都没有输入,直接点击按钮,则激发Button1的onclick事件,执行
javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("Button1", "", true, "", "", false, false))
分解开来,则是先执行
new WebForm_PostBackOptions("Button1", "", true, "", "", false, false)
再执行
WebForm_DoPostBackWithOptions(...)
W1
//设置好各个参数
function WebForm_PostBackOptions(eventTarget, eventArgument, validation, validationGroup, actionUrl, trackFocus, clientSubmit)
}
这里先对Page_ClientValidate(整个页面进行验证,在W2中)的子程序进行展开:
function Page_ClientValidate(validationGroup)
}
它有调用
ValidatorValidate->(IsValidationGroupMatch, evaluationfunction==RequiredFieldValidatorEvaluateIsValid, ValidatorSetFocus, ValidatorUpdateDisplay):验证控件
ValidatorUpdateIsValid->AllValidatorsValid:更新整个页面的验证状态
ValidationSummaryOnSubmit:处理分组情况?
上面三个被调用的子程序中又以ValidatorValidate为重要,我们对它分析一下
function ValidatorValidate(val, validationGroup, event)
}
它中间又调用了四个子程序(IsValidationGroupMatch, evaluationfunction==RequiredFieldValidatorEvaluateIsValid, ValidatorSetFocus, ValidatorUpdateDisplay),其中ValidatorSetFocus我们以后分析。其它三个分析如下:
//验证控件的组是不是指定的组
function IsValidationGroupMatch(control, validationGroup)
}
我对这段程序还不理解,为什么设置一个显示不显示还要这么繁?
还有一个子程序是更新整个页面的验证状态:
//更新整个页面的验证状态
function ValidatorUpdateIsValid()
}
这些子程序分析完成后,最后要回到我们的按钮点击事件来,通过以上代码走一着,Page_BlockSubmit被设置为true,即阻塞网页的提交。
这时,再去主网页看,提交的代码:onsubmit="javascript:return WebForm_OnSubmit();"
function WebForm_OnSubmit()
}
最后结果是:当输入框不满足验证控件的要求时,验证控件显示出来,网页阻止提交。
未完,待续
相关文章:
-
2021-08-13
-
2022-12-23
-
2022-01-12
-
2021-11-10
-
2021-12-16
-
2021-08-06
-
2021-09-15
猜你喜欢
-
2021-08-03
-
2021-06-08
-
2021-12-09
-
2021-09-30
-
2022-01-16
相关资源
-
下载
2022-12-31
-
下载
2021-06-24
-
下载
2021-06-05