用 IE7 编辑占位符属性

Posted

技术标签:

【中文标题】用 IE7 编辑占位符属性【英文标题】:Edit the placeholder attribute with IE7 【发布时间】:2013-05-16 12:24:11 【问题描述】:

我正在尝试访问和编辑输入字段的占位符属性。

使用 IE8+ 可以正常工作。 IE7 则不然。

我可以访问和读取该属性,但无法使用 IE7 编辑该属性。 我知道该属性不适用于 IE9 及以下版本,但我正在使用插件使 IE9 及以下版本兼容。

//Console.log display the value on IE7
$item.attr('placeholder'); 

//Get an error on IE7, but works with IE8+. SCRIPT3: Member not found
$item.attr('placeholder', 'value'); 

有办法解决这个问题吗?

谢谢。

【问题讨论】:

你能分享一下小提琴吗 通常情况下,您应该使用 .prop() 而不是 .attr() 但我什至不确定它在 IE7 上的工作来更改此浏览器不支持的占位符属性 您是否考虑过放弃对 IE7 的支持?特别是对于像这样的非关键功能 - 缺少占位符不会(或至少,它不应该)影响网站的直接可用性,所以只需将其省略并让IE7用户不用。无论如何,IE7 用户并不多,使用它的用户现在肯定会很好地习惯在浏览器中看起来不是最好的网站。 您使用的是哪个插件?是widgetulous.com/placeholderjs吗? 【参考方案1】:

我建议您使用 jQuery 插件来使用占位符。其他几个插件也有同样的问题,但Daniel Stocks' one 适用于 IE >= 7。

如何使用它:

HTML

<input type="text" placeholder="Text field" />
<textarea placeholder="Text area"></textarea>

jQuery

$('input[placeholder], textarea[placeholder]').placeholder();

【讨论】:

以上是关于用 IE7 编辑占位符属性的主要内容,如果未能解决你的问题,请参考以下文章

IE7 中的占位符

ie7、ie8 和 ie9 的最佳占位符 polyfil 脚本 [关闭]

Modernizr.load 在 IE7/IE8 中不提供输入和文本区域占位符支持

如何使用左侧的占位符和右侧的编辑文本创建 UITextField?

更改占位符的 css 属性

IE 中与 jquery 验证器一起使用的占位符