如果选择了Bootstrap Multi,则禁用特定选择复选框,如果选择了选项,则默认选项为

时间:2020-11-08 19:47:01

标签: jquery twitter-bootstrap html-select vbulletin bootstrap-multiselect

我正在尝试达到与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');

在实现此预期结果方面的任何帮助将不胜感激。

0 个答案:

没有答案