views:

2866

answers:

2

I'm having a weird problem with some Javascript/DOM code I've ben playing with. I'm trying to assign the .onKeyUp and .onChange events/methods to a text input like so:

form.elements["article"].onkeyup = "alert('test');";

Oddly, assigning using that method is doing nothing, and I'm forced to do this manually using:

form.elements["article"].setAttribute("onkeyup", "alert('test');");

Am I missing something here? I've used the first method I mentioned before and it has worked fine. Thanks for your help!

+6  A: 

Try this:

form.elements["article"].onkeyup = function() { alert("test"); };

Steve

Steve Harrison
+5  A: 

You need to assign a function, not a string. For example:

form.elements["article"].onkeyup = function(){alert('test');};

The only things I know that will take a string and eval it (other than eval) are setTimeout and setInterval.

tghw