导致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(),否则效果良好。

当他们点击取消按钮时,是否可以跳过客户端验证,或者我可以采取任何方法来实现这一点。

导致Validation无法使用自定义验证器

此处列出了类似的问题: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可能会起作用。