tags:

views:

51

answers:

2

I'm getting syntax errors while trying to add an if/else statement the onclick attribute. What is the syntax for this?

<div onclick="var element = $('#selector'); if (element.val() == 'something') { alert('hello'); } else { alert('goodbye'); } ">
    Click here 
    <input type="hidden" id="selector" value="something" />
</div>

...and yes, I must have this javascript in the onclick attribute (can't move this to a function).

+2  A: 

Javascript DOM elements do not have a val() function. (Are you thinking of jQuery?)

Change .val() to .value.


If you are thinking of jQuery, you can write if ($('#selector').val() == 'something').

SLaks
sorry, got mixed up since I'm using jQuery. I've updated my code sample, but that's still not the problem I'm having.
Andrew
@Andrew: [Your code works](http://jsfiddle.net/mzT8R/2/).
SLaks
+4  A: 

.val() is a jQuery method. You want to access the value property of the DOM element.

if (element.value == 'something') { 

Or create a jQuery object if you have jQuery loaded:

if ($(element).val() == 'something') { 

If you took that approach, you could always use a jQuery selector:

if ($('#selector').val() == 'something') { 
patrick dw
sorry, got mixed up since I'm using jQuery. I've updated my code sample, but that's still not the problem I'm having.
Andrew
@Andrew - I don't get any errors [using your code](http://jsfiddle.net/VA3pT/). What do the errors say, and which browser are you using? Also, are you sure you have jQuery loaded?
patrick dw