2014-09-30 51 views
0

我使用它來檢查textarea的最大長度,而不是使用IE8-9中不支持的maxlength。最大長度不能在IE8中工作

在IE8中,如果我粘貼一個500字節的字符,焦點會丟失在textarea元素上。該字符不能被選擇或刪除。

我該如何保持對元素的關注?

$('textarea[maxlength]').bind('keypress keydown keyup paste change', function(){ 
    var element = this; 

    setTimeout(function() { //Get the value 
     var text = $(element).val(); 
     var limit = $(element).attr('maxlength'); //Get the maxlength 

     length = new Number(text.length); //counter increase 
     counter = limit-length; 
     $('#feedbackNum_counter').text(counter); 

     //Check if the length exceeds what is permitted 
     if (text.length > limit) { 
      $(element).prop('readOnly',true); 
      $(element).val(text.substr(0, limit)); //Truncate the text if necessary 
      $('#feedbackNum_counter').text(0) 
     } 

    },1) 
}); 
+0

的[最大的textarea的長度是不工作在IE8]可能重複(http://stackoverflow.com/questions/16909063/max-length-of-textarea-is-not -IE8) – davidcondrey 2014-09-30 18:08:02

回答

0

這是一個簡單的解決方案。

var maxLengthTAs = $("textarea[maxlength]"); 
 

 
for(var i = 0; i < maxLengthTAs.length; i++) 
 
    { 
 
     var _textArea = $(maxLengthTAs[i]); 
 
     var _maxLength = _textArea.attr("maxlength"); 
 
     var _testString = ""; 
 
     for(var c = 0; c < _maxLength+1; c++) _testString+=" "; 
 
     _textArea.val(_testString); 
 
     //Feature Detection 
 
     
 
     var _test = _textArea.val(); 
 
     if(_test.length > _maxLength) { 
 
      //if it's over the max length, the feature is not present, hook up events 
 
      _textArea.keyup(function(){ 
 
      var _max = $(this).attr("maxlength"); 
 
      var _val = $(this).val().length; 
 
      if(_val > _max) $(this).val($(this).val().substr(0,_max)); 
 
      }); 
 
     } 
 
     _textArea.val(""); 
 
    }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<textarea maxlength='50' placeholder='Max 50 Characters'></textarea>

+0

:這在IE8中不起作用。只要有變化,就需要觸發這個功能......即;退格,粘貼,更改,鍵入,按鍵等等。觸發它 – user1050619 2014-09-30 19:59:55

+0

應該在IE8中工作,對我有用 – Mike 2014-09-30 22:02:12

+0

什麼時候會觸發此事件...我是否需要將此功能綁定到所有事件? – user1050619 2014-09-30 22:07:38