2010-08-27 44 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); 
相关问题