主页>技术社区>编程问答

使用隐藏和显示自动更新jQuery中的mulitple下拉列表vlues

eIT.com.cn 2023/3/17 11:23:38 阅读 6 次

打印


如何解决使用隐藏和显示自动更新jQuery中的mulitple下拉列表vlues?

三个下拉,但是最初只有下拉可见。 在第下拉中选择值时,第二个下拉将可见。同样,如果我们为第二个下拉选择值,则第三个下拉将可见

每当我重置上下拉的值时,我都希望将下下拉重置为-请选择-(当前未发生)

例如(我需要此)

drop-down 1    -- please select --   option 1.1   option 1.2
drop-down 2   -- please select --   option 2.1 (1.1)   option 2.2 (1.1)   option 2.3 (1.1)
   option 2.4 (1.2)   option 2.5 (1.2)   option 2.6 (1.2)   option 2.7 (1.2)

drop-down 3   -- please select --   option 3.1 (2.1)   option 3.2 (2.1)   option 3.3 (2.1)
   option 3.4 (2.2)   option 3.5 (2.2)
   option 3.6 (2.3)   option 3.7 (2.3)
   option 3.8 (2.4)
   option 3.9 (2.5)
   option 3.10 (2.7)   option 3.11 (2.7)   option 3.12 (2.7)   option 3.13 (2.7)   option 3.14 (2.7)

这是html,略有不同

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<label>Dropdown 1</label>
<select name="select1" id="fe296151"> <option value="" selected="selected" abled="abled">Please select</option> <option id="main1" value="aaaa-1">aaaa-1</option> <option id="main2" value="bbbb-1">bbbb-1</option> <option id="" value="cccc-1">cccc-1</option>
</select>
<div id="divselect2"> <label>Dropdown 2</label> <select name="select2" id="fe296152">   <option value="" selected="selected" abled="abled">Please select</option>   <option id="sub1" class="main1" value="aaaa-1-2.a">aaaa-1-2.a</option>   <option id="sub1" class="main1" value="aaaa-1-2.b">aaaa-1-2.b</option>   <option id="sub2" class="main2" value="bbbb-2.a">bbbb-2.a</option>   <option id="sub2" class="main2" value="bbbb-2.b">bbbb-2.b</option>   <option id="sub2" class="main2" value="bbbb-2.c">bbbb-2.c</option> </select>
</div>
<div id="divselect3"> <label>Dropdown 3</label> <select name="select3" id="fe296154">   <option value="" selected="selected" abled="abled">Please select</option>   <option id="red1" class="sub2" value="aaaa-3.a">aaaa-3.a</option>   <option id="" class="sub2" value="aaaa-3.b">aaaa-3.b</option>   <option id="" class="sub2" value="bbbb-3.c">bbbb-3.c</option>   <option id="" class="sub2" value="bbbb-3.d">bbbb-3.d</option> </select>
</div>
<div id="divselect3a"> <label>input </label> <input type="text" class="red1" value="" />
</div>
<script type="text/javascript">
$(document).ready(function(){ $("#divselect2").hide();  $("#divselect3").hide(); $("#divselect3a").hide();  });
$("#fe296151").change(function() { if ($(this).data('options') === undefined) {   $(this).data('options',$('#fe296152 option').clone()); }  var fe296151 = $("#fe296151").find(':selected').attr('id'); if(fe296151) {   $('#divselect2').show();   } else {   $('#divselect2,#divselect3,#divselect3a,#divselect4').hide();     }   var options = $(this).data('options').filter('.'+fe296151); $('#fe296152').html(options);   
});
$("#fe296152").change(function() { if ($(this).data('options') === undefined) {   $(this).data('options',$('#fe296154 option').clone()); } var select2 = $("#fe296152").find(':selected').attr('id'); if(select2) {   $('#divselect3').show();   } else {   $('#divselect3,#divselect4').hide();     }
var options = $(this).data('options').filter('.'+fe296152); $('#fe296154').html(options);
});
$("#fe296154").change(function() { var select3 = $("#fe296154").find(':selected').attr('id'); if(select3) {   $('#divselect3a').show();   } else {   $('#divselect3a').hide();     }
});
</script>

解决方法

对于您的问题,我已删除所有不必要的部分。在您的逻辑中,您正在检查所选选项是否没有“ ID”属性,但是“选择”选项被禁用,您无法选择这些值。在我的版本中,我显示并重置了修改后的所有输入元素。

我希望这是您想要的结果。

$(document).ready(function() {
 $("#divselect2").hide(); $("#divselect3").hide(); $("#divselect3a").hide();
 $("#fe296151").change(function() { /*   if ($(this).data('options') === undefined) {     $(this).data('options',$('#fe296152 option').clone());   }   */      $('#divselect2').show();   $('#divselect2 select,#divselect3 select,#divselect3a input[type="text"]').val("");   $('#divselect3,#divselect3a').hide();         //var options = $(this).data('options').filter('.' + fe296151);   //$('#fe296152').html(options); });   $("#fe296152").change(function() {   /*   if ($(this).data('options') === undefined) {     $(this).data('options',$('#fe296154 option').clone());   }   */      $('#divselect3').show();   $('#divselect3 select,#divselect3a input[type="text"]').val("");   $('#divselect3a').hide();         /*   var options = $(this).data('options').filter('.' + fe296152);   $('#fe296154').html(options);   */ });   $("#fe296154").change(function() {
   $('#divselect3a').show();   $('#divselect3a input[type="text"]').val("");    });



});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<label>Dropdown 1</label>
<select name="select1" id="fe296151"> <option value="" selected="selected" disabled="disabled">Please select</option> <option id="main1" value="aaaa-1">aaaa-1</option> <option id="main2" value="bbbb-1">bbbb-1</option> <option id="" value="cccc-1">cccc-1</option>
</select>
<div id="divselect2"> <label>Dropdown 2</label> <select name="select2" id="fe296152">   <option value="" selected="selected" disabled="disabled">Please select</option>   <option id="sub1" class="main1" value="aaaa-1-2.a">aaaa-1-2.a</option>   <option id="sub1" class="main1" value="aaaa-1-2.b">aaaa-1-2.b</option>   <option id="sub2" class="main2" value="bbbb-2.a">bbbb-2.a</option>   <option id="sub2" class="main2" value="bbbb-2.b">bbbb-2.b</option>   <option id="sub2" class="main2" value="bbbb-2.c">bbbb-2.c</option> </select>
</div>
<div id="divselect3"> <label>Dropdown 3</label> <select name="select3" id="fe296154">   <option value="" selected="selected" disabled="disabled">Please select</option>   <option id="red1" class="sub2" value="aaaa-3.a">aaaa-3.a</option>   <option id="" class="sub2" value="aaaa-3.b">aaaa-3.b</option>   <option id="" class="sub2" value="bbbb-3.c">bbbb-3.c</option>   <option id="" class="sub2" value="bbbb-3.d">bbbb-3.d</option> </select>
</div>
<div id="divselect3a"> <label>input box</label> <input type="text" class="red1" value="" />
</div>

,

感谢您的帮助!在这里,我想像这样的隐藏/显示下拉菜单中的选项

drop-down 1    -- please select --   option 1.1   option 1.2
drop-down 2   -- please select --   option 2.1 (if i choose option 1.1,i want to show this option)   option 2.2 (if i choose option 1.1,i want to show this option)   option 2.3 (if i choose option 1.1,i want to show this option)
   option 2.4 (if i choose option 1.2,i want to show this option)   option 2.5 (if i choose option 1.2,i want to show this option)   option 2.6 (if i choose option 1.2,i want to show this option)   option 2.7 (if i choose option 1.2,i want to show this option)

drop-down 3   -- please select --   option 3.1 (if i choose option 2.1,i want to show this option)   option 3.2 (if i choose option 2.1,i want to show this option)   option 3.3 (if i choose option 2.1,i want to show this option)
   option 3.4 (if i choose option 2.2,i want to show this option)   option 3.5 (if i choose option 2.2,i want to show this option)
   option 3.6 (if i choose option 2.3,i want to show this option)   option 3.7 (if i choose option 2.3,i want to show this option)
   option 3.8 (if i choose option 2.4,i want to show this option)
   option 3.9 (if i choose option 2.5,i want to show this option)
   option 3.10 (if i choose option 2.7,i want to show this option)   option 3.11 (if i choose option 2.7,i want to show this option)   option 3.12 (if i choose option 2.7,i want to show this option)   option 3.13 (if i choose option 2.7,i want to show this option)   option 3.14 (if i choose option 2.7,i want to show this option)

注意:下拉菜单3没有(2.6)子选项






相关内容


热门栏目


特别声明


最新资讯
热讯排行



合作媒体友情链接
生活常识小贴士 软件开发教程 智慧城市生活网 息县通生活服务[移动版] 息县商圈[移动版] 美食菜谱
健康养生 法律知识 科技频道 电影影讯 留学考研学习 星座生肖|解梦说梦




关于我们 | 联系我们 | 合作媒体 | 使用条款 | 隐私权声明 | 版权声明

      Copyright © 2023 eIT.com.cn. All Rights Reserved. 豫ICP备2022012332号