javascript - 根据其他选择值隐藏选择中的选项

标签 javascript html-select hide

拼车网站有到达城市和出发城市两个选择标签,我想防止用户在到达城市选择和出发城市选择中选择同一个城市。

这是一个例子:

<select name="departure" size="1">
  <option value="1">NY</option>
  <option value="2">FL</option>
  <option value="3">LA</option>
</select>

<select name="arrival" size="1">
  <option value="1">NY</option>
  <option value="2">FL</option>
  <option value="3">LA</option>
</select>

我只是想阻止用户使用 JavaScript 或任何其他解决方案在两个选择字段中选择同一个城市

最佳答案

对于一个简单的解决方案,我建议:

function deDupe(el) {
    var opt = el.selectedIndex,
        other = el.name == 'departure' ? document.getElementsByName('arrival')[0] : document.getElementsByName('departure')[0],
        options = other.getElementsByTagName('option');
    for (var i = 0, len = options.length; i < len; i++) {
        options[i].disabled = i == opt ? true : false;
    }
}

var departure = document.getElementsByName('departure')[0],
    arrival = document.getElementsByName('arrival')[0];

deDupe(document.getElementsByName('departure')[0]);

departure.onchange = function () {
    deDupe(departure);
};
arrival.onchange = function () {
    deDupe(arrival);
};

JS Fiddle demo .

引用资料:

关于javascript - 根据其他选择值隐藏选择中的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15101286/

相关文章:

javascript - 是否可以使用 Javascript 触发浏览器的关于窗口?

javascript - 如何创建数组副本?

html - 选择表格中的标签不起作用

javascript - jquery/javascript 随机选择选项

android - 如何在 Android 应用程序中为三星设备在全屏模式下隐藏软键

javascript - 如何使用 addEventListener 获取用户点击坐标,然后使用 elementFromPoint().click() 重复该点击?

javascript - 动态添加的选择更改事件未注册

Jquery 隐藏/显示破坏了我的 div?

javascript - 使用 javascript 加载并显示来自另一个域的页面,而不显示原始 URL

javascript - 测试 CSS Transition 在 Jasmine 中完成