ASP.Net从2.0升级到4.0+会导致JavaScript运行时错误:无法获取未定义或空引用的属性“Validators”

时间:2017-05-09 17:38:52

标签: javascript asp.net webforms requiredfieldvalidator

情况如下。我们的内部网站正在从ASP.Net 2.0升级到4.0(我也试过4.5和4.6,希望它在那些版本中得到修复)。我们有一个用于客户端签名的签名板,但它仅适用于IE11或更早版本,因为它使用ActiveX控件。因此,基本上直到我们切换签名板,我们才会使用IE 11。

现在,当控件执行服务器端回发并且附加了Validator控件(通常是requiredfieldvalidator)时,它将给出以下错误:

JavaScript运行时错误:无法获取未定义或空引用的属性“Validators”。

这是它给出错误的javascript方法(它在我加粗的行上失败):

function ValidatorOnChange(event) {
    event = event || window.event;
    Page_InvalidControlToBeFocused = null;
    var targetedControl;
    if ((typeof(event.srcElement) != "undefined") && (event.srcElement != null)) {
        targetedControl = event.srcElement;
    }
    else {
        targetedControl = event.target;
    }
    var vals;
    if (typeof(targetedControl.Validators) != "undefined") { // here
        vals = targetedControl.Validators;
    }
    else {
        if (targetedControl.tagName.toLowerCase() == "label") {
            targetedControl = document.getElementById(targetedControl.htmlFor);
            vals = targetedControl.Validators;
        }
    }
    if (vals) {
        for (var i = 0; i < vals.length; i++) {
            ValidatorValidate(vals[i], null, event);
        }
    }
    ValidatorUpdateIsValid();
}

我一直在网上寻找一个没有运气的答案。该错误会阻止页面进入服务器端代码。我可以通过在验证器标签中设置enableclientscript = false来解决问题,但我希望有更好更快的选项。

感谢。

0 个答案:

没有答案