我有两个选择菜单,我想对其进行比较。如果选择第一个选择选项,则要禁用第二个选择菜单中具有相同名称的选项。仅使用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>
答案 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>