带有jquery和bootstrap multiselect的Tri状态复选框

时间:2013-09-27 05:07:45

标签: javascript jquery twitter-bootstrap multi-select

我正在使用jquery bootstrap multiselect http://davidstutz.github.io/bootstrap-multiselect/。我很满意这个插件,直到一个棘手的要求出现。我的多选择类似于下面的那个

        <select id="example4" multiple="multiple" style="display: none;">
            <option value="cheese">Cheese</option>
            <option value="tomatoes">Tomatoes</option>
            <option value="mozarella">Mozzarella</option>
            <option value="mushrooms">Mushrooms</option>
            <option value="pepperoni">Pepperoni</option>
            <option value="onions">Onions</option>
        </select>

我的要求是我收到每个用户都有偏好的用户列表。例如:user1喜欢奶酪和西红柿,user2喜欢西红柿,蘑菇和洋葱。因此,单击下拉列表时,应预先选择所有四个选项。应检查西红柿选项,并在中间状态检查其他选项。我需要类似这样的东西http://css-tricks.com/indeterminate-checkboxes/(顺便说一下,它很棒)。我尝试通过编写

来通过javascript操作复选框
             //leaving out the unnecessary code
              cb = $("#multiselectObj").find('input[value="'+objValue+'"]');
              $(cb).prop("indeterminate", true);

但上面的代码似乎没有任何效果。 我可以在选择选项中使用任何三态吗?有没有办法可以解决这个问题,还是应该使用完全不同的插件? 非常感谢专家的任何帮助。

1 个答案:

答案 0 :(得分:0)

(在问题中通过编辑回答。转换为社区维基回答。请参阅Question with no answers, but issue solved in the comments (or extended in chat)

OP写道:

  

找到解决方案:我从当前的multiselect obj获得了下一个div并获得了复选框。它有效。

       function findDropdownCheckbox(ele, chkValue){
              divs = $(ele).next();
              cb = $(divs).find('input[value="'+chkValue+'"]');
              //console.log("divvvvvvvvvsss -");
              //console.log(cb);
              return cb;
       }