【发布时间】:2014-10-28 12:41:30
【问题描述】:
我想在选择多个组合框时禁用组合框中的值。 就像我有四个组合框 1、组合框 2、组合框 3、组合框 4,其值为 Select、1、2、3、4 和 5。 现在,如果我从组合框 1 中选择值“1”,那么它应该被所有其他组合框禁用。然后如果我从combobox2中选择'2',那么它应该在combobox1和combobox3中被禁用,并且在combobox3中也禁用值'1'。
更清楚:
- Combobox1 - 已选择 - 值 '1'
- Combobox2 - 已选择 - 值 '2'
- Combobox3 - 已选择 - 值 '3'
现在结果应该是:
Combobox1 - 禁用值 - '2','3' 但不是 1/3/4/5
Combobox2 - 禁用值 - '1','3' 但不是 3/4/5
Combobox3 - 禁用值 - '1','2' 但不是 3/4/5
Combobox4 - 禁用值 - '1','2','3' 但不是 4/5
编辑
如果使用“选择”选项选择了 Combobox1,则它应该禁用除 combobox1 之外的所有其他组合框,并重置所有其他组合框的索引为 0 的所有值。
但是代码发生了什么,当我从组合框选择值 1 时,组合框 2 和 3 被禁用,但是从组合框 2 中选择值“2”时,值 '1' 组合框 3 被启用。
这是我到目前为止所做的:
HTML 代码:
<head>
<title>Language test page</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
</head>
<body>
<select name="g1" id="select_g1">
<option value="select1">Select</option>
<option value="one">one</option>
<option value="two">two</option>
<option value="three">three</option>
</select>
<select name="g2" id="select_g2">
<option value="select2">Select</option>
<option value="one">one</option>
<option value="two">two</option>
<option value="three">three</option>
</select>
<select name="g3" id="select_g3">
<option value="select3">Select</option>
<option value="one">one</option>
<option value="two">two</option>
<option value="three">three</option>
</select>
</body>
</html>
JQuery 代码:
<script>
$(document).ready(function(){
$('select').on('change', function (e) {
$('select option').prop('disabled', false);
var optionSelected = $("option:selected", this);
var valueSelected = this.value;
$("select option:contains('" + valueSelected + "')").each(function(){
if(valueSelected === this.value){
this.disabled = true;
}else{
this.disabled = false;
}
});
});
});
</script>
感谢任何帮助。
【问题讨论】:
标签: javascript jquery combobox