【问题标题】:Using input from checkbox to change color of button使用复选框的输入来更改按钮的颜色
【发布时间】:2015-10-07 08:03:38
【问题描述】:

我有 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>

【问题讨论】:

  • 你能把你试过的完整的JS和CSS加进去吗?或者创建一个小提琴?

标签: jquery html css twitter-bootstrap checkbox


【解决方案1】:

我认为您可以使用 jQuery 和一些 HTML tweeks 来实现您所需要的。

更新您的按钮以包含唯一属性,例如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/

【讨论】:

    【解决方案2】:

    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

    【讨论】:

    • 这可行,但它会选择所有按钮。页面上有多个。
    • 好的,我添加了更改以处理多个触发按钮
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-18
    • 1970-01-01
    • 2018-01-31
    • 2020-08-16
    • 2016-12-21
    • 1970-01-01
    • 2018-01-24
    相关资源
    最近更新 更多