检查表单输入是否存在

Nig*_*ley 7 javascript

我想检查用户填写输入名称"field1"时是否存在名为"field2"的输入标签.我是通过使用onchangefield1 input标签上的事件执行JavaScript函数来实现的.(我正在使用警告框进行测试.)如果field2不存在,JavaScript会单击一个按钮,表单会更新为同时包含field1和field2.但是即使field2存在,警报框也会弹出,无论我使用哪3种方法.我ifnull'undefined'等尝试了各种组合.

如果field2存在,为什么会弹出警告框?

function foobar(){

if(!document.getElementsByName("field2"){
alert("foobar");
}

if(!document.forms[0].field2){
alert("foobar");
}

if(!document.forms[0].elements.namedItem("field2"){
alert("foobar");
}
}
Run Code Online (Sandbox Code Playgroud)

Amb*_*mps 6

你错过了一个括号: if(!document.getElementsByName("field2"))

  • 也在`if(!document.forms [0] .elements.namedItem("field2")`上 (6认同)

Nig*_*ley 5

实际上,问题在于页面有多种形式,因此forms[0]不是指我想要的形式。所以我认为最好的方法是直接使用this和引用该input字段。此外,比较与undefined而不是更清楚!

这有效:

function foobar(fooform){
    if (fooform.field2 === undefined) {
        alert("foobar");
    }
}
Run Code Online (Sandbox Code Playgroud)

像这样调用:

foobar(this.form);
Run Code Online (Sandbox Code Playgroud)