javascript - 从选择中启用或禁用选项

标签 javascript html-select

我正在尝试根据他们是否选择了另一个选项来使一个选项可选择或不可选择。例如,如果有选项 1-6,并且他们没有在他们的第一个选择框中选择选项 1,那么在同一个选择框和表单中的任何其他选择框中,则无法选择选项 6。

我环顾四周,但一切都是关于点击一个按钮来实现这一点。

这是我的代码(我也试过onclick)

   <script type="text/javascript">
      function makeDisable(){
      var x=document.getElementById("mySelect2");
      x.disabled=true
      }
     function makeEnable(){
         var x=document.getElementById("mySelect2");
          x.disabled=false
     }</script>
     <form>
        <select class="mySelect" id="mySelect">
        <option onchange="makeEnable()" value="Enable list">Apple</option>
        <option onchange="makeDisable()" value="Disable list">Banana</option>
        <option id="mySelect2" disabled="true">Orange</option>
    </select>
    </form>

最佳答案

选项元素没有事件“onchange”,但选择元素有。

我很快在下面写了一段代码。您可以添加更多选择项目。当您在其中一个选择元素中选择一个选项时,您不应在其他选择元素中选择相同索引处的选项。

function toggleDisability(selectElement) {
  //Getting all select elements
  var arraySelects = document.getElementsByClassName('mySelect');
  //Getting selected index
  var selectedOption = selectElement.selectedIndex;
  //Disabling options at same index in other select elements
  for (var i = 0; i < arraySelects.length; i++) {
    if (arraySelects[i] == selectElement)
      continue; //Passing the selected Select Element

    arraySelects[i].options[selectedOption].disabled = true;
  }
}
<form>
  <select onchange="toggleDisability(this);" class="mySelect" id="mySelect1">
    <option>Apple</option>
    <option>Banana</option>
    <option>Orange</option>
  </select>
  <select onchange="toggleDisability(this);" class="mySelect" id="mySelect2">
    <option>Hamburger</option>
    <option>Pizza</option>
    <option>Cola</option>
  </select>
</form>

关于javascript - 从选择中启用或禁用选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17973236/

相关文章:

javascript - 当需要 "select"或 "input"时验证表单

jquery - 从克隆的选择选项中删除 "selected"属性在 IE 中不起作用

javascript - 当我们可以使用简单的 return 语句时,为什么要使用函数表达式

html - 如何在选项标签中写入多种颜色的文本

javascript - 如何在 JavaScript 中导入/包含源文件?

javascript - 如何动态构建选项列表

javascript - 一个单元格中的双选菜单 JqGrid

javascript - 在 Angularjs 选择框中将已存在的选定属性设置为默认选定值

javascript - 使用 moment.js 格式化此日期时间

javascript - onclick 事件创建一个 'show more' 样式的内容框,当您单击按钮时该内容框会扩展和收缩