我想检查用户填写输入名称"field1"时是否存在名为"field2"的输入标签.我是通过使用onchangefield1 input标签上的事件执行JavaScript函数来实现的.(我正在使用警告框进行测试.)如果field2不存在,JavaScript会单击一个按钮,表单会更新为同时包含field1和field2.但是即使field2存在,警报框也会弹出,无论我使用哪3种方法.我if用null和'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)
你错过了一个括号: if(!document.getElementsByName("field2"))
实际上,问题在于页面有多种形式,因此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)
| 归档时间: |
|
| 查看次数: |
42118 次 |
| 最近记录: |