【发布时间】:2020-08-24 07:16:52
【问题描述】:
我有 2 个下拉菜单,比如说选择 1 和选择 2,场景是 当用户在select 1上选择下拉菜单并选择A,如此select 2,选项A将被禁用。
这是我的代码,实际上这是有效的,
但是我有一个条件,当用户编辑下拉列表时,在选择 1 时用户已经选择了 A,但仍然没有选择选择 2,我想要的是必须禁用选择 2 中的选项 A,但目前它仍然启用
jsfiddle https://jsfiddle.net/q3mu7x2w/
$("#pr_bundling").change(function(){
$("#pr_cross").find("option").each(function(){
$(this).removeAttr("disabled");
});
$("#pr_cross [value=" + $(this).val() + "]").attr("disabled","disabled");
$('#pr_cross').not(this).has('option[value="'+ this.value + '"]:selected').val('noselect29');
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<h3>select 1</h3>
<select class="form-control" id="pr_bundling">
<option value='noselect99' selected >Select</option>
<option value="A" selected>A</option>
<option value="B">B</option>
<option value="C">C</option>
</select>
<br>
<h3>select 2</h3>
<select class="form-control" id="pr_cross">
<option value='noselect29' selected >Select</option>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
</select>
【问题讨论】:
-
这能回答你的问题吗? Disable options based on previous selects
-
你想用
$('#pr_cross').not(this).has('option[value="'+ this.value + '"]:selected').val('noselect29');实现什么? -
如果用户在选择 1 上进行任何更改,选择 2 将被重置
-
我有一个条件,当用户想要编辑时,用户已经在选择 1 上选择了 A,所以在选择 2 选项 A 将被禁用,上面的链接仍然没有回答,因为当我选择牛奶时,在select 2牛奶中依然启用
-
@ezles88
milk未 启用 => jsfiddle.net/e9zwm0cj => 它是来自该副本的解决方案
标签: html jquery select dropdown option