textarea的placeholder屬性兼容ie8ie9


       前一陣子公司項目里用到了textarea的placeholder的屬性,然后不兼容ie8ie9,去公司插件庫里一看,妹的,只有input的兼容封裝,欲哭無淚,然后在網上又查了好多,大部分都是寫input的placeholder的兼容性,我刀呢?!?!?!

沒法子,又不能不管,可是我又不會封裝插件的能力實在是有限啊,所以,就模仿了input的元素替換的方法,最后用了一個很笨的方法給弄出來了,請各路大神不要嘲笑,哈哈。

一、html部分:  

<textarea class = "research_description" maxlength="200" placeholder="最多可輸入200字"></textarea>
<span class = "ieTextarea ieTextHide">最多可輸入200字</span><--一個替換placeholder的元素span-->

二、less部分:

樣式具體的我就不寫了,只寫用到的這兩個樣式:

.ieTextarea{
  color:#999!important;
  position:absolute;
  top:18px;
  left:30px;
}
.ieTextHide{
  display: none;
}

 

三、js

if(navigator.userAgent.indexOf("MSIE 8.0")>0 && ! window.innerWidth){
  var $textarea = $('textarea');//獲取元素集合
  $.each($textarea,function(i,el){//遍歷
    if($(el).text() == ''){
      $(el).siblings('.ieTextarea').removeClass('ieTextHide');
    }else{
      $(el).siblings('.ieTextarea').addClass('ieTextHide');
    };
  });
  $('.ieTextarea').off('focus').focus(function(){//span聚焦的時候
    $(this).addClass('ieTextHide');
    $(this).siblings('textarea').focus();//模仿textarea聚焦
  });
  $('textarea').off('blur').blur(function(){
    if($(this).text() == ""){
      $(this).siblings('.ieTextarea').removeClass('ieTextHide');//失焦的時候讓模擬span顯示
    }
  });
  $('textarea').off('focus').focus(function(){
    $(this).siblings('.ieTextarea').addClass('ieTextHide');
  });
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM