我正在使用Bootstrap Multiselect来显示所选年份的最大计数可以为 4 的年份列表。即。如果选择了 4 年,则禁用所有未选择的年份;如果没有选择一年以使计数为 3,则再次启用所有年份。
(该插件项目的最新提交是添加启用/禁用功能,但我不认为这适用于单个选择元素 - https://github.com/davidstutz/bootstrap-multiselect/issues/171)
我的 HTML:
<select id="slYears" class="multiselect" multiple="multiple">
<option value="1" disabled="disabled">2009</option>
<option value="2" selected="selected">2010</option>
<option value="3" selected="selected">2011</option>
<option value="4" selected="selected">2012</option>
<option value="5" selected="selected">2013</option>
</select>
我的 JavaScript(第一次尝试):
$('#slYears').change(function () {
var arr = $(this).val().toString().split(',');
if (arr.length >= 4) {
$('#slYears option').each(function () {
if (!$(this).is(':selected')) {
$(this).prop('disabled', true);
}
});
}
else {
$('#slYears option').each(function () {
$(this).prop('disabled', false);
});
}
});
然后我尝试使用插件的一些方法和示例。我尝试使用“全选”示例来启用所有,我尝试使用“onchange”事件,但都不起作用。
这是jsfiddle: http: //jsfiddle.net/389Af/1/(注意我在上面的JS之前粘贴了插件JS)