情况如下。我们的内部网站正在从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来解决问题,但我希望有更好更快的选项。
感谢。
添