2010-08-27 48 views
1

我有一個簡單的textarea,其ID爲:「describe_short」。並且用戶應該能夠插入有限數量的字符。所以我寫了這個小功能:在IE中計算字符將光標設置爲文本結尾

var max_char = $('#max_chars > span');  
$('#describe_short').bind('keyup', function(){ 
       var char_count = $(this).val().length; 
       $(this).val($(this).val().substr(0, self.short_maximum)); 
       var chars_left = self.short_maximum - char_count 
       if(chars_left < 0) chars_left = 0; 
       max_char.text(chars_left); 
      }); 

其中顯示左字符的max_char數量。

在ff中,chrome的工作方式像魅力,但IE(8)的行爲不同。我不能將光標設置爲除了整個文本的結束位置之外的其他位置。

我該怎麼做才能避免這種情況?

回答

1

我認爲問題在於你將$(this)的值設置爲每個keyup的short_maximum,這可能會讓IE變得生氣。

如果val的長度已超過short_maximum,那麼只更改val會更好。就個人而言,我只是扔在:

if ($(this).val().length > self.short_maximum) { 
$(this).val($(this).val().substr(0, self.short_maximum)); 
} 

而且,只是喜好的事情,但你也可以改變這一點:

if(chars_left < 0) chars_left = 0; 

這樣:

chars_left=Math.max(chars_left,0); 
相關問題