Javascript IE11兼容性视图中的TEXTAREA maxLength

Javascript IE11兼容性视图中的TEXTAREA maxLength,javascript,html,Javascript,Html,我正在修改一个目前在IE6和IE8中运行的web应用程序,使其在IE11中运行。由于大量HTML不符合IE11标准模式的要求,该网站将在兼容模式下运行 我发现的一个问题是TEXTAREA字段的maxLength值。在下面的示例中,JavaScript“alert”语句将在IE6、IE8和IE11标准模式下打印值“350”,但在IE11兼容模式下给出“undefined” HTML: 有人知道为什么吗?有没有办法在IE11兼容模式下获取值?我意识到,正确的解决方案是改进代码,这样我们就不必使用兼容

我正在修改一个目前在IE6和IE8中运行的web应用程序,使其在IE11中运行。由于大量HTML不符合IE11标准模式的要求,该网站将在兼容模式下运行

我发现的一个问题是TEXTAREA字段的maxLength值。在下面的示例中,JavaScript“alert”语句将在IE6、IE8和IE11标准模式下打印值“350”,但在IE11兼容模式下给出“undefined”

HTML:


有人知道为什么吗?有没有办法在IE11兼容模式下获取值?我意识到,正确的解决方案是改进代码,这样我们就不必使用兼容模式,但我正在寻找可以快速实现的东西。JQuery目前不是一个选项。

当IE11在兼容模式下运行时-它模拟IE7(要验证这一点,请在此模式下加载)

由于某种原因,在IE7中似乎无法访问maxLength属性。您可以添加一些冗余,使代码中的值可以访问

添加复制maxLength值的自定义属性:

<textarea id="myfield" name="myfield" class="clsText" maxlength="350" ml="350" cols=120 rows=3 style="WIDTH:620px"></textarea>

这应该是通用的。

如果您尝试
alert(a.getAttribute('maxLength')?使用getAttribute,它显示IE6、IE8和IE11标准模式的值(350),但IE11兼容模式的值为“null”。看起来IE7(兼容模式下的IE11就是这样)不支持maxLength。它实际上对TextArea有影响吗,意思是-它限制用户输入吗?是的,maxLength值用于以三种方式限制输入:通过拼写检查插件键入、粘贴和系统修改字段内容。否,我的意思是,这种限制在IE11的兼容模式下是否也起作用,唯一的问题是它在JavaScript中不可用?
var a = document.getElementById(frmCRISLogon.myfield.id);
alert(a.maxLength);
<textarea id="myfield" name="myfield" class="clsText" maxlength="350" ml="350" cols=120 rows=3 style="WIDTH:620px"></textarea>
var a = document.getElementById("myfield");
var maxLength = a.getAttribute("maxLength");

if (maxLength == null) {
   // now you know you're either in IE7 or IExx/compatability mode
   maxLength = a.getAttribute("ml");  // grab value of backup attribute
}