Javascript 如果第二个输入(最新)字段已填充,则禁用输入字段

Javascript 如果第二个输入(最新)字段已填充,则禁用输入字段,javascript,Javascript,我对javascript非常陌生。我阅读了此链接并尝试对其进行自定义,但它不起作用: 我想让人们在city和zipcode两个选项之间切换。我想启用他们最后选择的任何字段,并禁用另一个字段。例如,如果他们在zipcode选项卡上并按下submit按钮,则zipcode中的任何输入都会被提交,而不是城市,反之亦然 html是: <ul class="tabs"> <li><a class="border-radius top med" href="#city">

我对javascript非常陌生。我阅读了此链接并尝试对其进行自定义,但它不起作用:

我想让人们在city和zipcode两个选项之间切换。我想启用他们最后选择的任何字段,并禁用另一个字段。例如,如果他们在zipcode选项卡上并按下submit按钮,则zipcode中的任何输入都会被提交,而不是城市,反之亦然

html是:

<ul class="tabs">
<li><a class="border-radius top med" href="#city">City</a></li>
<li><a class="border-radius top med" href="#zipcode">Zipcode</a></li>
</ul>
<div id="city"><label class="IDX-advancedText">City</label>
<select id="aht-home-city" name="city[]" class="IDX-select " autocomplete="off">
<option value="2115">Austin</option>
<option value="2718">Bartlett</option>
</div>
<div id="zipcode"><label class="IDX-advancedText">Zipcode</label>
<input class="IDX-advancedBox IDX-advWildText" id="IDX-aw_zipcode" type="text"
   maxlength="255" name="aw_zipcode" value="" /></div>

非常感谢您的帮助!该网站是

就像我在评论中告诉你的那样,你需要更改“getElementById”中的ID

当另一个字段为空时,我还将该字段重新启用

我在select中添加了一个空值,当选择null时,邮政编码的字段返回enable

HTML

<ul class="tabs">
<li><a class="border-radius top med" href="#city">City</a></li>
<li><a class="border-radius top med" href="#zipcode">Zipcode</a></li>
</ul>
<div id="city"><label class="IDX-advancedText">City</label>
<select id="aht-home-city" name="city[]" class="IDX-select " autocomplete="off">
<option value=""></option>
<option value="2115">Austin</option>
<option value="2718">Bartlett</option>
</select>
</div>
<div id="zipcode"><label class="IDX-advancedText">Zipcode</label>
<input class="IDX-advancedBox IDX-advWildText" id="IDX-aw_zipcode" type="text"
   maxlength="255" name="aw_zipcode" value="" /></div>
有一个有效的例子:

在寻找这种行为吗

var last = "";

var dis1 = document.getElementById("aht-home-city");
dis1.onchange = function () {
    last = "city";
    document.getElementById("IDX-aw_zipcode").disabled = true;
}
var dis2 = document.getElementById("IDX-aw_zipcode");
dis2.onchange = function () {
    last = "zipcode";
    if (this.value != "" || this.value.length > 0) {
        document.getElementById("aht-home-city").disabled = true;
    }
}
选中此项


注意:HTML中还缺少一个
标记。

首先,您选择的ID是“aht home city”,而不是“city”。输入的ID是“IDX-aw_zipcode”,而不是“zipcode”。在定义第二个onchange时,您也会出现复制/粘贴错误,您在dis1上定义它,但您想在DIS2上定义它。除了@forumma所说的之外,这对您的用户来说是非常糟糕的行为,用户无法理解为什么他的邮政编码输入框突然被禁用。反之亦然。还有,用户现在怎么会后悔他的选择呢?谢谢大家的帮助。我需要禁用其中一个。如果输入的zipcode与城市不匹配,则返回结果为0。当然,当选择zipcode时,我可以写一些参数来拉起城市,反之亦然。但是,我还不知道足够的javascript代码。
var dis1 = document.getElementById("aht-home-city");
var dis2 = document.getElementById("IDX-aw_zipcode");

dis1.onchange = function () {
  if (dis1.value !== "" || dis1.value.length > 0) {
    dis2.disabled = true;
  } else {
    dis2.disabled = false;
  }
};


dis2.onchange = function () {
  if (dis2.value !== "" || dis2.value.length > 0) {
    dis1.disabled = true;
  } else {
    dis1.disabled = false;
  }
};
var last = "";

var dis1 = document.getElementById("aht-home-city");
dis1.onchange = function () {
    last = "city";
    document.getElementById("IDX-aw_zipcode").disabled = true;
}
var dis2 = document.getElementById("IDX-aw_zipcode");
dis2.onchange = function () {
    last = "zipcode";
    if (this.value != "" || this.value.length > 0) {
        document.getElementById("aht-home-city").disabled = true;
    }
}