在IE8及以下的浏览器中,不支持placeholder属性的解决办法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在IE8及以下的浏览器中,不支持placeholder属性的解决办法相关的知识,希望对你有一定的参考价值。

以下代码解决了在IE8及以下浏览器中不支持placeholder属性。

原理:将placeholder的值作为内容写入控件,并添加控件事件来进行模拟。

;(function(){
    if( !(‘placeholder‘ in document.createElement(‘input‘)) ){
        // 匹配 除type=password以外所有input、textarea
        $(‘input[placeholder][type!=password],textarea[placeholder]‘).each(function(){   
            var self = $(this),   
            text= self.attr(‘placeholder‘);
            // 如果内容为空,则写入
            if(self.val()===""){ 
                self.val(text).addClass(‘placeholder‘);
            }

            // 控件激活,清空placeholder
            self.focus(function(){
                if(self.val()===text){
                    self.val("").removeClass(‘placeholder‘);
                }
            // 控件失去焦点,清空placeholder
            }).blur(function(){
                if(self.val()===""){
                    self.val(text).addClass(‘placeholder‘);
                }
            });            
        });   
    }
})();

 

以上是关于在IE8及以下的浏览器中,不支持placeholder属性的解决办法的主要内容,如果未能解决你的问题,请参考以下文章

填个小坑,Vue不支持IE8及以下,跨域ajax不支持IE9

placeholder 不支持ie8

placeholder兼容IE8解决方案

让 IE 8 及以下浏览器支持 表单 input [placeholder] 属性

解决ie8(及其以下)不支持getElementsByClassName的问题

ie8兼容问题