html5提供了很多方便的属性,例如input表单的placeholder属性,可以很方便添加input的默认提示语,用户体验也比较好,但html5的兼容性是个硬伤,最近cms大学小编就遇到了这个问题,页面上的placeholde属性在ie8及以下没有作用,于是就出现了下面的情况,input输入框变成空白了,非常尴尬,接下来CMS大学小编给出JavaScript的解决办法,将这段放在js文件末尾就好了。。

折叠展开JavaScript 代码
    - (function($) {    
 
    -   var placeholderfriend = {    
 
    -     focus: function(s) {    
 
    -       s = $(s).hide().prev().show().focus();    
 
    -       var idValue = s.attr("id");    
 
    -       if (idValue) {    
 
    -         s.attr("id", idValue.replace("placeholderfriend", ""));    
 
    -       }    
 
    -       var clsValue = s.attr("class");    
 
    -       if (clsValue) {    
 
    -         s.attr("class", clsValue.replace("placeholderfriend", ""));    
 
    -       }    
 
    -     }    
 
    -   }    
 
    -     
 
    -     
 
    -   function isPlaceholer() {    
 
    -     var input = document.createElement('input');    
 
    -     return "placeholder" in input;    
 
    -   }    
 
    -     
 
    -   if (!isPlaceholer()) {    
 
    -     $(function() {    
 
    -     
 
    -       var form = $(this);    
 
    -       var elements = form.find("input[type='text'][placeholder]");    
 
    -       elements.each(function() {    
 
    -         var s = $(this);    
 
    -         var pValue = s.attr("placeholder");    
 
    -         var sValue = s.val();    
 
    -         if (pValue) {    
 
    -           if (sValue == '') {    
 
    -             s.val(pValue);    
 
    -           }    
 
    -         }    
 
    -       });    
 
    -     
 
    -       elements.focus(function() {    
 
    -         var s = $(this);    
 
    -         var pValue = s.attr("placeholder");    
 
    -         var sValue = s.val();    
 
    -         if (sValue && pValue) {    
 
    -           if (sValue == pValue) {    
 
    -             s.val('');    
 
    -           }    
 
    -         }    
 
    -       });    
 
    -     
 
    -       elements.blur(function() {    
 
    -         var s = $(this);    
 
    -         var pValue = s.attr("placeholder");    
 
    -         var sValue = s.val();    
 
    -         if (!sValue) {    
 
    -           s.val(pValue);    
 
    -         }    
 
    -       });    
 
    -     
 
    -       var elementsPass = form.find("input[type='password'][placeholder]");    
 
    -       elementsPass.each(function(i) {    
 
    -         var s = $(this);    
 
    -         var pValue = s.attr("placeholder");    
 
    -         var sValue = s.val();    
 
    -         if (pValue) {    
 
    -           if (sValue == '') {    
 
    -             var html = this.outerHTML || "";    
 
    -             html = html.replace(/\s*type=(['"])?password\1/gi, " type=text placeholderfriend").replace(/\s*(?:value|on[a-z]+|name)(=(['"])?\S*\1)?/gi, " ").replace(/\s*placeholderfriend/, " placeholderfriend value='" + pValue + "' " + "onfocus='placeholderfriendfocus(this);' ");    
 
    -             var idValue = s.attr("id");    
 
    -             if (idValue) {    
 
    -               s.attr("id", idValue + "placeholderfriend");    
 
    -             }    
 
    -             var clsValue = s.attr("class");    
 
    -             if (clsValue) {    
 
    -               s.attr("class", clsValue + "placeholderfriend");    
 
    -             }    
 
    -             s.hide();    
 
    -             s.after(html);    
 
    -           }    
 
    -         }    
 
    -       });    
 
    -     
 
    -       elementsPass.blur(function() {    
 
    -         var s = $(this);    
 
    -         var sValue = s.val();    
 
    -         if (sValue == '') {    
 
    -           var idValue = s.attr("id");    
 
    -           if (idValue) {    
 
    -             s.attr("id", idValue + "placeholderfriend");    
 
    -           }    
 
    -           var clsValue = s.attr("class");    
 
    -           if (clsValue) {    
 
    -             s.attr("class", clsValue + "placeholderfriend");    
 
    -           }    
 
    -           s.hide().next().show();    
 
    -         }    
 
    -       });    
 
    -     
 
    -     });    
 
    -   }    
 
    -   window.placeholderfriendfocus = placeholderfriend.focus;    
 
    - })(jQuery);