I want to check if an input tag named “field2” exists when the user is filling out input name “field1”. I do that by executing a JavaScript function using the onchange event on field1’s input tag. (I’m testing using alert boxes.) If field2 does not exist, JavaScript clicks a button and the form is updated to have both field1 and field2. But the alert box pops up even when field2 exists no matter which of the 3 methods I use. I tried all sorts of combinations using if with null and 'undefined', etc.
Why do the alert boxes pop up if field2 exists ?
function foobar(){
if(!document.getElementsByName("field2"){
alert("foobar");
}
if(!document.forms[0].field2){
alert("foobar");
}
if(!document.forms[0].elements.namedItem("field2"){
alert("foobar");
}
}
Actually, the problem was that the page had various forms and therefore
forms[0]was not referring to the form I wanted. So I think the best way is to usethisand refer to theinputfield directly. Also, it is clearer to compare toundefinedrather than!.This works:
Called like this: