dubbelj
dubbelj

Reputation: 1160

IE Error, Object doesn't support this property or method

 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);

Gives the following error in Internet Explorer 7.0 (and maybe other versions too).

Object doesn't support this property or method.

Any ideas on what is causing this error?

Upvotes: 6

Views: 30082

Answers (5)

Adam
Adam

Reputation: 411

I had a similar error, however, it was because I added the JQuery library to the master page and there was a duplicate library declaration elsewhere the same page.

Upvotes: 0

Shadow Wizzard
Shadow Wizzard

Reputation: 66398

When you don't use the var keyword, IE browser search for messageLength in the global context and it finds it... you have element with that ID.

Trying to assign number to HTML element fails.

To solve this, just declare messageLength as local variable:

var messageLength = messageVal.length; //IE WON'T BREAK HERE

Upvotes: 23

AEMLoviji
AEMLoviji

Reputation: 3257

look here simple test. textarea does not support value property. you can get it via text property

Upvotes: 0

Ammu
Ammu

Reputation: 5127

I think the .change() is having some problem in IE.Please remove it and see if it is working.

Also try using .html() instead of .val().

Upvotes: 0

alexl
alexl

Reputation: 6851

Try yo replace :

messageVal = $('#messageLabel textarea').val();

with

messageVal = $('#messageLabel textarea').text();

Hope it helps.

Upvotes: 0

Related Questions