HTML5输入类型占位符在IE中不起作用

时间:2013-08-05 17:35:17

标签: html5 internet-explorer input placeholder

我正在使用HTML5作为我的一个项目。我在使用输入占位符属性来显示一些默认文本。它不适用于IE。对此有何解决方案?

7 个答案:

答案 0 :(得分:3)

如果您在项目中使用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; }
        }
    }
}

答案 1 :(得分:2)

IE 10之前不支持占位符。

http://caniuse.com/#feat=input-placeholder

您可以使用polyfill在IE中支持它。

答案 2 :(得分:0)

请参阅此主题的最佳答案,因为它有一个非常好的解释: Input placeholders for Internet Explorer

答案 3 :(得分:0)

较早版本的IE不支持html占位符。因此,您需要使用Placeholder.js之类的JavaScript解决方案。它会自动检测输入元素中的占位符属性,并使用跨浏览器解决方案来显示它们。

答案 4 :(得分:0)

使用jQuery placeholder。在Internet Explorer 10之前,标准HTML5声明不支持HTML5占位符。

答案 5 :(得分:0)

尝试Placeholders.js

重量轻,在IE 6中运行良好

答案 6 :(得分:0)

替代选项是在IE上显示“name:”文本&lt; 10

<!--[if lt IE 10]><style>.show-ie{display:block;}</style><![endif]-->