2013-09-25 15 views
8

我已经试图用一个按钮组(按照指令的在http://getbootstrap.com/javascript/#buttons),然后到它们的值解析到移位阵列:代码以设置/取消按钮,复选框在自举3.0

为代码的BTN-组

<div class="btn-group" id="weekdays" data-toggle="buttons"> 
    <label class="btn btn-default"> 
     <input type="checkbox" >Mo 
    </label> 
    <label class="btn btn-default"> 
     <input type="checkbox">Tu 
    </label> 
    <label class="btn btn-default"> 
     <input type="checkbox">We 
    </label> 
    </div> 
</div> 

代码用于读取值

$("#weekdays ").change(function(event){ 

    var checkedDays = $("#weekdays :checkbox").map(function(){ 
     return $(this).is(':checked') ? 1 : 0; 
    }).get(); // <---- 

    var sun = checkedDays.pop(); 

    checkedDays.unshift(sun); 

    console.log(checkedDays); 
}); 

目前为止这么好。 (即使我敢肯定,代码可以更好的写法。)

不过,我的问题是当我尝试编程设定的复选框的的值,并把它体现在UI。我已经设法改变复选框的值使用多种方法$(this).prop('checked', true)等,这似乎更新后备值,但它没有做任何改变按钮的外观。

我见过很多解决方案,但都没有与Bootstrap 3.0建议的方式设置复选框btn-group。有没有人有办法解决吗?

回答

11

如果您在单击引导按钮时使用DOM编辑器,则会在点击该按钮时看到类active被添加到标签(而不是复选框输入)。

以编程切换的按钮,可以使用自举方法.button('toggle')标签上:

$('#weekdays label').eq(n).button('toggle'); 

http://jsfiddle.net/mblase75/4NVvj/

这将改变按钮的外观和内复选框的checked属性。

6

在类似的情况下,什么工作对我来说是这样的:

$('#checkBoxId').trigger("click"); 

正是你想要哪个呢。

PS。不知道它是否是最好的,但当时它对我有用。

+0

我似乎无法得到这个工作,但感谢您的答案! – uvesten

相关问题