15

我知道 Internet Explorer 不支持输入标签的占位符属性,但肯定在 2012 年必须有另一种 IE 解决方案?

4

6 回答 6

14

不久前我写了一个 jQuery 插件,它将为任何不支持它的浏览器添加占位符支持。

IE 中的占位符文本

于 2012-04-26T15:59:03.817 回答
3

实际上,IE在 2012(版本 10)中确实支持占位符属性。将此与旧浏览器的 polyfill结合起来,您应该有一个全面的解决方案来解决您的问题。

于 2012-04-26T14:35:51.783 回答
0

我们已经在生产环境中使用这个 jQuery 插件几个星期了,它似乎工作得很好。

http://webcloud.se/code/jQuery-Placeholder/

于 2012-04-26T20:33:34.363 回答
0

试试我开发的这个 jQuery 插件

https://github.com/ramsunvtech/jQuery-Plugins/tree/master/IEPlaceHolder

于 2014-01-04T13:03:53.877 回答
0

http://the.deerchao.net/PlaceHolder 它可以在 ie 上运行,无需调用任何函数...

于 2012-11-27T00:31:27.180 回答
0

是的,IE8 和 IE9 有一个非常简单的解决方案,因为在 IE 的更高版本上它已经可以工作了。(IE10、IE11 等)

这是我找到的解决方案:

1. 检测 Internet Explorer 版本

<!--[if lt IE 10]>       
    <script type="text/javascript">var ie = 9;</script>      
<![endif]-->     
<!--[if lt IE 9]>                   
    <script type="text/javascript">var ie = 8;</script>          
<![endif]-->  

2.修复占位符

if (typeof ie == 'undefined') var ie = 10;   
if (ie == 8 || ie == 9){  

    $("input[placeholder]").each(function() {
        this.value = $(this).attr('placeholder');
    });        

    $("input[placeholder]").focus(function() 
        if (this.value == $(this).attr('placeholder')) this.value = '';
    }).blur(function() {   
        if (this.value == '')
            this.value = $(this).attr('placeholder'); 
    });
}
于 2014-10-25T21:29:29.623 回答