如果填写了第二个输入(最新)字段,则禁用输入字段

Disable an input field if second input (most current) field is filled

本文关键字:输入 字段 第二个 如果 最新      更新时间:2023-09-26

我对javascript很陌生。我阅读了此链接并尝试对其进行自定义,但它不起作用: 如果填写了第二个输入字段,则禁用输入字段

我想允许人们在两个选项之间切换 - 城市和邮政编码。我想启用他们最后选择的任何字段并禁用另一个字段。例如,如果他们在邮政编码选项卡上并按提交按钮,则无论邮政编码中输入什么,都会提交,而不是城市,反之亦然。

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>

脚本为:

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

任何帮助都非常感谢!该网站正在 http://austinhometeam.staging.wpengine.com/joyce-newsletter/

就像我在评论中告诉你的,你需要在"getElementById"中更改ID。

当另一个字段为空时,我还添加了重新启用的字段。

我在选择中添加一个空值,当选择空值时,邮政编码的字段返回启用。

.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>

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;
  }
};

有一个工作示例:JSBin example

寻找类似这种行为的东西?

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;
    }
}

检查这个 js小提琴

注意:HTML 中还缺少一个 </select> 标记。