在第二次选择中选择2更改属性
Select2 change attr in second select
当在第一个<select>
中选择了相同的值时,如何在第二个<select>
中更改<option>
的属性?
更具体地说:当我在第一个<select>
中选择一个选项时,第二个<select>
中的相同选项应该被禁用。
$("body").on("select2:select", "#first", function(e) {
var cur_id = e.params.data.id;
$("#second").children("option[value=" + cur_id + "]").attr("disabled", "disabled");
$("#second").trigger('refresh');
$("#first").trigger('refresh');
});
$("body").on("select2:select", "#second", function(e) {
var cur_id = e.params.data.id;
$("#first").children("option[value=" + cur_id + "]").attr("disabled", "disabled");
$("#second").trigger('refresh');
$("#first").trigger('refresh');
});
<body>
<select id="first" name="first">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<select id="second" name="second">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</body>
这里有一个统一的方法。
$("select#first").on("change", function() {
$("select#second option").each(function() {
if ($("select#first option:selected").val() === $(this).val()) $(this).prop("disabled", true);
else $(this).prop("disabled", false);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
<select id="first" name="first">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<select id="second" name="second">
<option value="1" disabled="disabled">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</body>
当用户选择在第二个select
中选择的选项时,您可能也想在第二次选择中自动选择(踢到)另一个选项。如果这有意义:-)
对于select2版本>=4.0
解决方案:
$("select").val("1").trigger("change");
$("body").on("change", "#first", function(e) {//use change event
var cur_id = $('option:selected',this).val();//get value of selected option
console.log(cur_id);
$(this).siblings("#second").children("option[value=" + cur_id + "]").attr("disabled", "disabled");//disable from sibling the selected option
});
$("body").on("change", "#second", function(e) {//use change event
var cur_id = $('option:selected',this).val();//get value of selected option
console.log(cur_id);
$(this).siblings("#first").children("option[value=" + cur_id + "]").attr("disabled", "disabled");//disable from sibling the selected option
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
<select id="first" name="first">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<select id="second" name="second">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</body>
相关文章:
- jQuery最近父级的数据属性选择器
- javascript对象操作:根据指定条件选择属性
- Javascript:从数组中的对象中选择属性
- 如何在 javascript 中为没有值的标签选择属性
- jQuery按名称选择属性只选择第一个匹配的元素
- 使用 Angular 从服务器端生成的下拉列表中获取选择属性值
- 如何在 Javascript 中从对象中选择属性
- 选择属性在更改选择元素后未更改
- jQuery - 选择属性名称(非值)以 .. 开头的所有元素
- j查询选择属性
- 选择“属性的一部分-JQuery”
- 检查是否下拉'的第一个选项已选择属性
- JQuery选择属性范围
- jquery-attr选择器不会选择属性的全部值
- 强制dijit.form.ComboBox的选择属性
- 选择属性设置为特定值的元素中的所有元素
- 使用& # 39;这个# 39;选择属性,然后与选定的HTML属性进行比较
- 按掩码选择属性
- 在Chrome上XPath选择属性失败
- amCharts选择属性值