IE9 以下兼容placeholder

placeholder属性是HTML5新添加的属性,当input或者textarea设置了该属性后,该值的内容将作为灰色提示显示在文本框中,当文本框获得焦点时,提示文字消失,placeholder可作为输入框的提示文字
效果图


Paste_Image.png

placeholder是常用的属性,它使得input框内有很友好的提示效果。高版本浏览器都支持placeholder属性,但IE9以下版本的浏览器并不支持这一属性。这里用JavaScript实现添加对浏览器的兼容处理。

        function isPlaceholder(){
            var input = document.createElement('input');
            return 'placeholder' in input;
        }
        if (!isPlaceholder()) {//不支持placeholder 用jquery来完成
            $(document).ready(function() {
                if(!isPlaceholder()){
                    $("input").not("input[type='password']").each(//把input绑定事件 排除password框
                            function(){
                                if($(this).val()=="" && $(this).attr("placeholder")!=""){
                                    $(this).val($(this).attr("placeholder"));
                                    $(this).focus(function(){
                                        if($(this).val()==$(this).attr("placeholder")) $(this).val("");
                                    });
                                    $(this).blur(function(){
                                        if($(this).val()=="") $(this).val($(this).attr("placeholder"));
                                    });
                                }
                            });
                    //对password框的特殊处理1.创建一个text框 2获取焦点和失去焦点的时候切换
                    $("input[type='password']").each(
                            function() {
                                var pwdField    = $(this);
                                var pwdVal      = pwdField.attr('placeholder');
                                pwdField.after('<input  class="login-input" type="text" value='+pwdVal+' autocomplete="off" />');
                                var pwdPlaceholder = $(this).siblings('.login-input');
                                pwdPlaceholder.show();
                                pwdField.hide();

                                pwdPlaceholder.focus(function(){
                                    pwdPlaceholder.hide();
                                    pwdField.show();
                                    pwdField.focus();
                                });

                                pwdField.blur(function(){
                                    if(pwdField.val() == '') {
                                        pwdPlaceholder.show();
                                        pwdField.hide();
                                    }
                                });
                            })
                }
            });
        }

导入这个js就可以兼容ie9以下不显示placeholder的问题了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,815评论 1 92
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,259评论 4 61
  • APP入口的 UITabBarController【A】 创建方式和正常方式一样,可以使用代码,也可以使用stor...
    KermitX阅读 4,041评论 11 20
  • 匆匆时光 新的一年又要开始了 辞旧迎新 老凤祥新年狂欢庆典 老凤祥百年经典源自1848年的 古老传承,结合现代高精...
    奇思噢阅读 897评论 0 0