Javascript 5个选择框,隐藏每个选定项目的值
我有选择框,我想从已选择的选项中隐藏(删除)项目:Javascript 5个选择框,隐藏每个选定项目的值,javascript,jquery,html,Javascript,Jquery,Html,我有选择框,我想从已选择的选项中隐藏(删除)项目: <select name="gets" class="gets"> <option value="0">SELECT</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option valu
<select name="gets" class="gets">
<option value="0">SELECT</option>
<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>
</select>
<select name="gets" class="gets">
<option value="0">SELECT</option>
<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>
</select>
<select name="gets" class="gets">
<option value="0">SELECT</option>
<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>
</select>
<select name="gets" class="gets">
<option value="0">SELECT</option>
<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>
</select>
挑选
1.
2.
3.
4.
5.
挑选
1.
2.
3.
4.
5.
挑选
1.
2.
3.
4.
5.
挑选
1.
2.
3.
4.
5.
因此,如果我从第一个选择框中选择了选项1,它应该从其余框中消失,如果我在选择框4中选择了选项3,它应该从其余框中消失
提前感谢如下图所示:
$('.gets').change(function(){
var value = $(this).val();
$('.gets').not(this).find('option[value="'+value+'"]').hide();
})
如果要排除选项,请选择选项,如下图所示
$('.gets').change(function(){
var value = $(this).val();
if(value!=0)
$('.gets').not(this).find('option[value="'+value+'"]').hide();
})
您可以尝试以下方法:
$("select").on("change", function(){
var selectVal = $(this).val();
$("select").not($(this)).find("option[value="+ selectVal +"]").remove();
});
您需要在其他选择中找到具有相同值的所有选项并将其隐藏。
我会用这样的方式:
var selects = $('select');
selects.bind('change', function(e) {
var val = this.value;
//show all options
selects.find('option').show();
selects.each(function() {
if(!this.value) return;
//hide the selected value in the other selects
selects.find('option[value="' + this.value + '"]')
.filter(':not(:checked)')
.filter(':not([value="0"])')
.hide();
});
});
我可以再添加一个选项吗?我可以添加一个按钮来重新初始化5个选择框吗?这样我可以重试吗?@AbuRayane使用append
添加一个选项,并添加此代码以再次显示所有选项$('.get')。查找('option')。显示()代码>谢谢nxt,非常复杂,但是很好one@AbuRayane它比其他示例稍微复杂一点,但这是因为它处理用户更改其先前选择的情况。例如,如果在前三个选项中选择1、2和3,则第四个选项仅显示4和5。然后将第一个选择的值从1更改为4时,第四个选择将更新为显示1和5。这里的其他示例只处理选项的删除。哦,是的,没错,我没有注意到,谢谢broI,我注意到如果我重置,选择框不会重置为选择设置属性应该有效,但我建议只将值设置为0(您要显示的选项的值)$('.get').val('0');