【发布时间】:2023-04-08 15:16:01
【问题描述】:
我正在为我的一个项目使用 HTML5。在那里我使用输入占位符属性来显示一些默认文本。它在 IE 中不起作用。有什么解决办法吗?
【问题讨论】:
标签: html internet-explorer input placeholder
我正在为我的一个项目使用 HTML5。在那里我使用输入占位符属性来显示一些默认文本。它在 IE 中不起作用。有什么解决办法吗?
【问题讨论】:
标签: html internet-explorer input placeholder
【讨论】:
请参阅此线程上的最佳答案,因为它有一个很好的解释: Input placeholders for Internet Explorer
【讨论】:
旧版本的 IE 不支持 html 占位符。因此,您需要使用像Placeholder.js 这样的javascript 解决方案。它会自动检测输入元素中的占位符属性,并利用跨浏览器解决方案来显示它们。
【讨论】:
使用jQuery placeholder。在 Internet Explorer 10 之前,标准 HTML5 声明不支持 HTML5 占位符。
【讨论】:
如果您在项目中使用 javascript,则可以添加此代码和平,它将通过 javascript 为您的输入提供一个占位符。
function supports_input_placeholder() {
var i = document.createElement('input');
return 'placeholder' in i;
}
if (!supports_input_placeholder()) {
var fields = document.getElementsByTagName('INPUT');
for (var i = 0; i < fields.length; i++) {
if (fields[i].hasAttribute('placeholder')) {
fields[i].defaultValue = fields[i].getAttribute('placeholder');
fields[i].onfocus = function () { if (this.value == this.defaultValue) this.value = ''; }
fields[i].onblur = function () { if (this.value == '') this.value = this.defaultValue; }
}
}
}
【讨论】:
placeholder 的输入并不暗示任何类型的服务器端活动:上面的代码将采用任何已作为placeholder 属性放置的内容,并使该行为在非- 支持的浏览器。它解决了你的问题!
它重量轻,在 IE 6 中也能很好地工作
【讨论】:
另一种选择是在 IE
<!--[if lt IE 10]><style>.show-ie{display:block;}</style><![endif]-->
【讨论】: