用JS实现,当一个下拉框选择一个值时,另外两个下拉框的对应的值变为不可选

在页面中有三个下拉框, 如何用JS实现, 当一个下拉框选中一个值时, 另外两个下拉框对应的值变为不可选状态, 例如, 当三个下拉框分别选中2,5,9时, 第一个下拉框无法选中5,9, 第二个下拉框无法选中2,9, 第三个下拉框无法选中2,5,效果如下:

先上HTML结构代码:

<select id='a'>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
    <option value="10">10</option>
</select>
<select id='b'>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
    <option value="10">10</option>
</select>
<select id='c' >
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
    <option value="10">10</option>
</select>

下面是JS代码:

    select_a=document.getElementById('a');
    select_b=document.getElementById('b');
    select_c=document.getElementById('c');
    s_a_child=select_a.children;
    s_b_child=select_b.children;
    s_c_child=select_c.children;
    //创建三个变量,用来分别接收被选中的option的索引值
    var a= 0,b= 0,c=0;
    //当selection标签发生状态改变时
    select_a.οnchange=function(){
        //循环遍历selection标签
        for (var i=0;i<s_a_child.length;i++) {
            //当检测到有标签处于选中状态时
            if (s_a_child[i].selected) {
                //先把上一个被选中的option标签的disabled变为false
                s_b_child[a].disabled=false;
                s_c_child[a].disabled=false;
                //再存储这次选中的option标签的索引值
                a=i;
                //再把这次选中的标签的索引值得option的disabled变为true
                s_b_child[i].disabled=true;
                s_c_child[i].disabled=true;
            }
        };
    };
    select_b.onchange=function(){
        for (var i=0;i<s_b_child.length;i++) {
            if (s_b_child[i].selected) {
                s_a_child[b].disabled=false;
                s_c_child[b].disabled=false;
                b=i;
                s_a_child[i].disabled=true;
                s_c_child[i].disabled=true;
            }
        }
    }
    select_c.onchange=function(){
        for (var i=0;i<s_c_child.length;i++) {
            if (s_c_child[i].selected) {
                s_b_child[c].disabled=false;
                s_a_child[c].disabled=false;
                c=i;
                s_b_child[i].disabled=true;
                s_a_child[i].disabled=true;
            }
        };
    };
    

 

转载于:https://www.cnblogs.com/luckq/p/9453828.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
A:这可以通过JavaScript实现。首先在HTML中定义两个下拉框,第二个下拉框项默认为空。然后,当第一个下拉框项改变时,可以使用事件监听器来检测该变化,并根据中的项更新第二个下拉框项。具体实现方法如下: 1. 在HTML中定义两个下拉框。 ``` <select id="first-dropdown"> <option value="1">Option 1</option> <option value="2">Option 2</option> <option value="3">Option 3</option> </select> <select id="second-dropdown"> </select> ``` 2. 使用JavaScript监听第一个下拉框项改变事件,并根据中的项更新第二个下拉框项。 ``` // 获取第一个下拉框的引用 const firstDropdown = document.getElementById("first-dropdown"); // 监听第一个下拉框项改变事件 firstDropdown.addEventListener("change", function() { // 获取中的项 const selectedOption = firstDropdown.value; // 根据中的项更新第二个下拉框项 const secondDropdown = document.getElementById("second-dropdown"); secondDropdown.innerHTML = ""; // 根据中的项添加新的项 switch(selectedOption) { case "1": // 添加第二个下拉框项 const option1 = document.createElement("option"); option1.value = "1"; option1.textContent = "Option 1.1"; secondDropdown.appendChild(option1); const option2 = document.createElement("option"); option2.value = "2"; option2.textContent = "Option 1.2"; secondDropdown.appendChild(option2); break; case "2": // 添加第二个下拉框项 const option3 = document.createElement("option"); option3.value = "3"; option3.textContent = "Option 2.1"; secondDropdown.appendChild(option3); const option4 = document.createElement("option"); option4.value = "4"; option4.textContent = "Option 2.2"; secondDropdown.appendChild(option4); break; case "3": // 添加第二个下拉框项 const option5 = document.createElement("option"); option5.value = "5"; option5.textContent = "Option 3.1"; secondDropdown.appendChild(option5); const option6 = document.createElement("option"); option6.value = "6"; option6.textContent = "Option 3.2"; secondDropdown.appendChild(option6); break; default: break; } }); ``` 这样,当用户选择一个下拉框项时,第二个下拉框将自动更新其对应项。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值