导致Validation无法使用自定义验证器
本文关键字:自定义 验证 Validation 导致 | 更新日期: 2023-09-27 17:57:51
我在aspx页面上有自定义验证器,用户需要在它们脱离控制时立即查看摘要中的错误消息。
为了实现这一点,我在每个控件的onblur事件上调用Page_ClientValidate('')
。我拥有的一个自定义验证器是:
function ValidateCustomerId(oSrc, args) {
var txtCustomerId = document.getElementById(txtCustomerId);
if (txtCustomerId != null) {
var customerId = txtCustomerId.value;
if (!isInteger(customerId)) {
document.getElementById("customerIdAsterik").style.display = 'inline';
args.IsValid = false;
}
else {
document.getElementById("customerIdAsterik").style.display = 'none';
}
}
}
若用户输入无效条目并单击"取消"按钮,则服务器端事件在单击两次之前不会被触发。"取消"按钮已具有CausesValidation=false
。我认为这种行为是由于在onblur事件上调用了Page_ClientValidate()
,否则效果良好。
当他们点击取消按钮时,是否可以跳过客户端验证,或者我可以采取任何方法来实现这一点。
此处列出了类似的问题:http://weblogs.asp.net/gurusarkar/archive/2013/05/30/after-first-postback-why-i-have-to-click-the-button-twice-for-postback-to-occur.aspx
不确定这是否适用,但由于onblur,Validation被激发。
所以我认为在按钮点击中设置Page_Block=false可能会起作用。