首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >maxLength兼容视图中的TEXTAREA

maxLength兼容视图中的TEXTAREA
EN

Stack Overflow用户
提问于 2014-10-29 17:35:37
回答 1查看 2.5K关注 0票数 1

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

我发现的一个问题是TEXTAREA字段的maxLength值。在下面的示例中,JavaScript“警报”语句将在IE6、IE8和IE11标准模式中打印值"350“,但在IE11兼容性模式中提供”未定义“。

HTML:

代码语言:javascript
复制
<TD><TEXTAREA ID="myfield" NAME="myfield" CLASS="clsText" maxLength="350" COLS=120 ROWS=3 STYLE = "WIDTH:620px"></TEXTAREA></TD>

JavaScript:

代码语言:javascript
复制
var a = document.getElementById(frmCRISLogon.myfield.id);
alert(a.maxLength);

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-29 17:42:38

当IE11在兼容性模式下运行时-它模拟IE7 (为了验证这一点,在此模式下加载http://whatsmyuseragent.com/ )。

看起来由于某种原因,maxLength属性在IE7中是不可访问的。您可以添加一些冗余以使代码中的值可访问。

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

代码语言:javascript
复制
<textarea id="myfield" name="myfield" class="clsText" maxlength="350" ml="350" cols=120 rows=3 style="WIDTH:620px"></textarea>

那么,在您的代码中,您可以做到

代码语言:javascript
复制
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
}

这应该是普遍可行的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26637105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档