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閱讀 134,993評論 19 139
  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,257評論 4 61
  • APP入口的 UITabBarController【A】 創建方式和正常方式一樣,可以使用代碼,也可以使用stor...
    KermitX閱讀 4,036評論 11 20
  • 匆匆時光 新的一年又要開始了 辭舊迎新 老鳳祥新年狂歡慶典 老鳳祥百年經典源自1848年的 古老傳承,結合現代高精...
    奇思噢閱讀 897評論 0 0