CausesValidation无法使用自定义验证程序

时间:2014-04-10 17:46:03

标签: c# asp.net validation customvalidator

我在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(),否则它可以正常工作。

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

1 个答案:

答案 0 :(得分:0)

此处列出了类似的问题: 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而触发了验证。

所以我认为在按钮点击中设置Page_Block = false可能会有效。