我正在尝试达到与this post中所述相同的结果。搜索了几个小时后,当我发现该帖子时感到很高兴,只是意识到它不符合我的需求,因为我的选项是通过论坛软件通过一个变量生成的,并且如果不编辑核心文件,这是不可行的。
我在模板中有如下选择:
<select id="prefixchoice" name="prefixchoice[]" multiple="multiple">
<option value="">$vbphrase[any_prefix_meta]</option>
<option value="-1">$vbphrase[no_prefix_meta]</option>
$prefix_options
</select>
$ prefix_options 会出现多个选项,例如:
<option value="NAME1">NAME1</option>
<option value="NAME2">NAME2</option>
<option value="NAME3">NAME3</option>
在发表多篇文章之后,我从每篇文章中获取了一点点,然后开始了:
$("#prefixchoice").multiselect({
onChange: function(option) {
if (!$("#prefixchoice option:selected").length) {
$("#prefixchoice option[value='-1']").attr('selected', 'selected');
$("#prefixchoice option:not(:selected)").prop('disabled', false);
$("#prefixchoice").multiselect('refresh');
}
else {
$("#prefixchoice option:disabled").prop('disabled', true);
$("#prefixchoice").multiselect('refresh');
}
}
});
我只是想从这里去。我要努力实现的目标完全是这样。
<option value="">$vbphrase[any_prefix_meta]</option>
被选中。<option value="-1">$vbphrase[no_prefix_meta]</option>
,则不能选择其他选项。我已经阅读了DOCs,似乎没有类似的内容。 (除非我错过了) 我还读过另一篇文章,禁用该选项对于引导多重选择而言效率不够,并且需要同时禁用 input 和 option 。我选择了以下代码,但不确定如何将其与我拼凑的其他内容一起使用。
input.prop('disabled', true);
option.prop('disabled', true);
input.parent('label').parent('a').parent('li').addClass('disabled');
在实现此预期结果方面的任何帮助将不胜感激。