我在按钮单击处理程序中有以下代码。两种方法都可以正常工作。 Page_ClientValidate()
引起额外的验证检查并进行处理,而Page_IsValid
利用现有属性。
问题
Page_IsValid
到那时已被计算?如果不能保证,我们需要显式调用Page_ClientValidate()
。 Page_IsValid
之前会发生什么事件?对于此类事件,我们不应该依赖Page_IsValid
更新
是否确定仅在验证部分完成之后(即在作为验证的一部分调用Page_ClientValidate()之后)才调用按钮单击事件处理程序(在JavaScript中)?如果可以保证,我可以依靠Page_IsValid吗?
脚本
$('#btnSave').click(function (e) {
//Aproach 1
var isValid = Page_ClientValidate('');
if (isValid)
{
//Do reamining work
}
//Aproach 2
if (Page_IsValid)
{
//Do reamining work
}
});
引用:
最佳答案
Page_ClientValidate()
设置为CausesValidation
时调用true
。 Page_ClientValidate()
是回发过程的一部分,因此在单击按钮时即被调用。在调用
Page_IsValid
之后,我仅在函数范围内依赖Page_ClientValidate()
。否则,我总是调用Page_ClientValidate()
。 注释:反复调用
Page_ClientValidate()
可能会导致页面过于拥挤(多个警报等)。这就是为什么拥有一个自定义的验证功能来处理所有验证的好处。