Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从选择中启用或禁用选项_Javascript_Html Select - Fatal编程技术网

Javascript 从选择中启用或禁用选项

Javascript 从选择中启用或禁用选项,javascript,html-select,Javascript,Html Select,我试图根据他们是否选择了另一个选项来选择一个选项,或者是可选的,或者是不可选的。例如,如果有选项1-6,但他们没有在第一个选择框中选择选项1,那么在同一个选择框和表单中的任何其他框中,则无法选择选项6 我环顾四周,但一切都是关于点击一个按钮来实现这一点 这是我的代码(我也尝试过onclick) 函数makeDisable(){ var x=document.getElementById(“mySelect2”); x、 禁用=真 } 函数makeEnable(){ var x=document

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

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

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


函数makeDisable(){
var x=document.getElementById(“mySelect2”);
x、 禁用=真
}
函数makeEnable(){
var x=document.getElementById(“mySelect2”);
x、 禁用=错误
}
苹果
香蕉
橙色

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

我已经在下面快速编写了一段代码片段。您可以添加更多选择项。当您在其中一个select元素中选择一个选项时,您不应该在其他select元素的同一索引中选择选项

<script type="text/javascript">
  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;
   }
  }
 </script>
 <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>

功能切换禁用(selectElement){
//获取所有选定元素
var arraySelects=document.getElementsByClassName('mySelect');
//获取选定索引
var selectedOption=selectElement.selectedIndex;
//禁用其他select元素中相同索引处的选项
对于(var i=0;i

功能切换禁用(selectElement){
//获取所有选定元素
var arraySelects=document.getElementsByClassName('mySelect');
//获取选定索引
var selectedOption=selectElement.selectedIndex;
//禁用其他select元素中相同索引处的选项

对于(var i=0;iI)来说,我一直在避免做类似的事情,哈哈。但谢谢你们,我想这就是当时的方式!添加一些解释,说明这个答案如何帮助解决当前问题
<script type="text/javascript">
  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;
   }
  }
 </script>
 <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>