使用复选框的输入来更改按钮的颜色

时间:2015-07-17 14:46:39

标签: jquery html css twitter-bootstrap checkbox

我有5行30个绿色按钮按钮。单击按钮时会弹出一个模态。模态内部是一个复选框。选中该复选框后,我需要它所在的按钮才能变为红色。我尝试了一些东西,但它们没有用。有什么想法吗?

HTML:

            <button type="button" class="btn btn-primary btn-xs gridbtn" data-toggle="modal" data-target="#myModal">number</button>

            <!-- Modal -->
            <div class="modal fade" id="myModal" role="dialog">
                <div class="modal-dialog">

                    <!-- Modal content-->
                    <div class="modal-content">
                        <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal">&times;</button>
                            <h4 class="modal-title">Testing</h4>
                        </div>
                        <div class="modal-body">
                            <form role="form">
                                <div class="form-group">
                                    <label for="email">Email address:</label>
                                    <input type="email" class="form-control" id="email">
                                </div>
                                <div class="form-group">
                                    <label for="pwd">Password:</label>
                                    <input type="password" class="form-control" id="pwd">
                                </div>
                                <div class="checkbox">
                                    <label><input type="checkbox"> Remember me</label>

                                </div>
                                <button type="submit" class="btn btn-default">Submit</button>
                            </form>
                        </div>
                        <div class="modal-footer">
                            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                        </div>
                    </div>
                </div>
            </div>

2 个答案:

答案 0 :(得分:1)

HTML:

将ID添加到所有不同的按钮

<button id="btn1" type="button" class="btn btn-primary btn-xs gridbtn" data-toggle="modal" data-target="#myModal">number</button>
<button id="btn2" type="button" class="btn btn-primary btn-xs gridbtn" data-toggle="modal" data-target="#myModal">number</button>
<button id="btn3" type="button" class="btn btn-primary btn-xs gridbtn" data-toggle="modal" data-target="#myModal">number</button>

在您的复选框中添加一个课程

<div class="checkbox callback-to-button">

JS:

$('#myModal').on('show.bs.modal', function (event) {
  var button = $(event.relatedTarget); // Button that triggered the modal
  $(this).find('.modal').attr('data-triggered', $(button).attr('id'));
})

$('.callback-to-button').click(function() {
    var target = $(this).closest('.modal').attr('data-triggered');
    if ($(this).find('[type=checkbox]').prop('checked')) {
        $('#'+target).css('background-color', 'red');
    }
    else {
        $('#'+target).css('background-color', '');
    }
});

查看实际操作:here

答案 1 :(得分:0)

我认为你可以通过jQuery和一些HTML tweek来实现你所需要的。

更新按钮以包含唯一属性,例如data-id

<button type="button" class="btn btn-primary btn-xs gridbtn" **data-id="btn1"** data-toggle="modal" data-target="#myModal">number</button>

在模态窗口中添加输入字段:

<input type="hidden" id="btnId" value="">

单击按钮后,使用按钮中的data-id值更新模态窗口中的输入字段:

$('button').click(function() {
    $('.modal #btnId').val($(this).attr('data-id'));
});

您现在在模态窗口和单击以打开它的按钮之间有一个链接。

选中复选框后,使用以下jQuery代码更改按钮的颜色:

$('.checkbox').change(function() {
        if($(this).is(":checked")) {
            $('button[data-id='+$('#btnId').val()+']').css('color','red');
        }       
    });

在这里演示:http://jsfiddle.net/Lpdx3k83/