function charCount(){
$.doTimeout('poll', 150, function(){
messageVal = $('#messageLabel textarea').val();
messageLength = messageVal.length; //IE BREAKS HERE
$('#messageLength').html(messageLength + '/140')
if(messageLength > 140){
$('#messageLength').not('.inv').addClass('inv')
}else{
$('#messageLength.inv').removeClass('inv')
}
return false;
})
}
$('#messageLabel textarea').change(charCount).keyup(charCount);
在Internet Explorer 7.0中也会出现以下错误(也可能是其他版本)。
Object不支持此属性或方法。
有关导致此错误的原因的任何想法?
答案 0 :(得分:23)
当您不使用var
关键字时,IE浏览器会在全局上下文中搜索messageLength
并找到它...您拥有该ID的元素。
尝试为HTML元素指定编号失败。
要解决此问题,只需将messageLength
声明为本地变量:
var messageLength = messageVal.length; //IE WON'T BREAK HERE
答案 1 :(得分:0)
尝试替换:
messageVal = $('#messageLabel textarea').val();
带
messageVal = $('#messageLabel textarea').text();
希望它有所帮助。
答案 2 :(得分:0)
我认为.change()在IE中遇到了一些问题。请将其删除,看看它是否正常工作。
也可以尝试使用.html()而不是.val()。
答案 3 :(得分:0)
看这里simple test。 textarea不支持价值财产。你可以通过文本属性获取它
答案 4 :(得分:0)
我有一个类似的错误,但是,这是因为我将JQuery库添加到母版页,并且在同一页的其他地方有一个重复的库声明。