IE9 以下兼容placeholder

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


IE9 以下兼容placeholder_第1张图片
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('');
                                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的问题了

你可能感兴趣的:(IE9 以下兼容placeholder)