我有一个多选控制,如下所示,
当用户选择“任意”时,我想取消选择所有其他选定值并仅选择“任意”,表示如果用户选择“任意”,则不允许选择其他值,否则允许选择其他值。
如何通过jQuery实现它
...谢谢
答案 0 :(得分:4)
jQuery("#select").change(function() {
if (jQuery("#select option:first").is(':selected')) {
jQuery("#select").val("any");
}
});
到下面的表格:
<select multiple id="select">
<option value="any">Any</option>
<option value="...">...</option>
...
</select>
答案 1 :(得分:4)
我想你想要这样的东西:
$("select").on("change", function () {
var selOption = $("option:selected", this).val();
if (selOption == "any") {
$(this).attr("selected", false);
$(this).val("any");
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="select2" multiple="multiple">
<option value="any">Any</option>
<option value="12">twelve</option>
<option value="13">thirette</option>
<option value="14">fourteen</option>
<option value="15">fifteen</option>
<option value="16">sixteen</option>
<option value="17">seventeen</option>
<option value="18">eighteen</option>
<option value="19">nineteen</option>
<option value="20">twenty</option>
</select>
答案 2 :(得分:1)
在大多数情况下,这应该有效
$('.my-select').val('any')
'any'在哪里是Any选项的值。
(function() {
var mSelect;
mSelect = $('select');
mSelect.on('click', function(event) {
var values, needReset;
values = mSelect.val();
needReset = event.target.value === 'any' ||
(values.length > 1 && values.indexOf('any') !== -1);
if (needReset) {
mSelect.val('any');
}
});
}());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select multiple>
<option value="any">Any</option>
<option value="divorced">Maried</option>
<option value="unmarried">Unmarried</option>
</select>