如何将两个选择菜单与JavaScript进行比较?

时间:2018-10-30 20:42:46

标签: javascript html

我有两个选择菜单,我想对其进行比较。如果选择第一个选择选项,则要禁用第二个选择菜单中具有相同名称的选项。仅使用JavaScript怎么做?而且我也想从两侧将所有选择的选项值写入p元素。

<form>
  <select multiple class="form-control" id="f144" onchange="">
      <option>REAR CASE</option>
      <option>CASE ASSEMBLY</option>
      <option>POLE CLAMP ASS</option>
      <option>POLE CLAMP KNOB</option>
      <option>COVER PERIPHERAL</option>
      <option>RETAINER CORD</option>
  </select>
</form>
<form>
  <select multiple class="form-control" for="fvisual" onchange="">
      <option>CASE ASSEMBLY</option>
      <option>FRONT CASE</option>
      <option>REAR CASE</option>
      <option>ASM DOOR</option>
      <option>SHIELD</option>
      <option>KEYPAD</option>
      <option>DISPLAY</option>
      <option>HANDLE DOOR</option>
      <option>RETAINER CORD</option>
      <option>POLE CLAMP ASS</option>
      <option>POLE CLAMP KNOB</option>
      <option>COVER PERIPHERAL</option>
  </select>
</form>
<p id="p1"></p>

1 个答案:

答案 0 :(得分:0)

这是我的答案。我比较了两个选择菜单,并禁用了所需的选项。但是我仍然想做些事情。我想做的是,当我第二次单击时选择取消选择哪个选项。但是我心中的解决方案没有用。

var a = document.f1.s1;
var b = document.f2.s1;
var array = [false, false, false, false];
function disable() {
    for (i = 0; i < a.length; i++) {
        if (a[i].selected && array[i] == false) {
            for (j = 0; j < b.length; j++) {
              if (a[i].value == b[j].value) {
                b[j].setAttribute("disabled", true);
              }
            }
            array[i] = true;
        }
        else if (a[i].selected && array[i] == true) {
          a[i].selected = false;
          array[i] = false;
        }
    }
}
<form name="f1">
  <select name="s1" multiple onchange="disable()">
    <option>ABCDE</option>
    <option>BCDEF</option>
    <option>CDEFG</option>
    <option>DEFGH</option>
  </select>
</form>
<form name="f2">
  <select name="s1" multiple>
    <option>ABCDE</option>
    <option>BCDEF</option>
    <option>CDEFG</option>
    <option>DEFGH</option>
  </select>
</form>