views:

64

answers:

5

What is wrong with this statement?

message = $("#contact-form").find(".long-text");

if(message.val().length < 15)
{
    message.css("border","2px solid red");
    alert("Your message must be more than 15 character long");
}

I get message.val is not a function error in Firebug? What could be the reason?

NEW

OK, now my form won't submit if I have more or less than 15 characters. Should I open a new question on this or should I continue on this one?

I have this inside:

$("#contact-form").submit(function(){
  message = $("#contact-form").find(".long-text");

    if(message.val().length < 15)
    {
        message.css("border","2px solid red");
        alert("Your message must be more than 15 character long");
        return false;
    }
    else {
        Post form with Ajax ..
    }
});
+5  A: 

As you can see in the syntax highlighter, the quotes went bogus :) There's a doublequote missing.

Besides, the val() only works on input elements (input, select, textarea and button). If it is indeed not an input element, then rather use text() instead. Further there's no such function as length(), you probably would like to use the length property.

I recommend to go get yourself through some basic jQuery tutorials and/or to go get a jQuery book.

BalusC
A: 

Besides missing the end quote delimiter, here are some other notes

  • length is a property, not a method. It should be message.val().length
  • val() is also only useful for HTML input elements. You could try message.html().length or use text(), depending on your requirements
alex
A: 

Can you post the corresponding html?

$("#contact-form).find(".long-text") is probably not returning what you think it is.

console(log(message)) might help you see what's in there.

paul
A: 

You could try

message = $("#contact-form").find(".long-text").first();
Rouan van Dalen
A: 

How about .length instead of length()

c0mrade