具有Jquery和Bootstrap的单选按钮

小罗学习编码

我在这里有代码(基本上是通过更改JS和html中的Jquery Checkbox Button进行修改的$widget.find('input:radio')type = "radio"

(它的主要作用是,它使收音机的外观比普通的收音机更好,更友好,我想要一个大按钮,以便触摸屏用户可以获得更好的体验)

在此处输入图片说明

的HTML

<span class="button-checkbox">
        <button type="button" class="btn btn-lg" data-color="primary">Option 1</button>
        <input type="radio" class="hidden" name="group1" id="op1" checked />
</span>

<span class="button-checkbox">
        <button type="button" class="btn btn-lg" data-color="primary">Option 2</button>
        <input type="radio" class="hidden" name="group1" id="op2"  />
</span>

JS

$(function () {
    $('.button-checkbox').each(function () {

        // Settings
        var $widget = $(this),
            $button = $widget.find('button'),
            $checkbox = $widget.find('input:radio'),
            color = $button.data('color'),
            settings = {
                on: {
                    icon: 'glyphicon glyphicon-check'
                },
                off: {
                    icon: 'glyphicon glyphicon-unchecked'
                }
            };

        // Event Handlers
        $button.on('click', function () {
            $checkbox.prop('checked', !$checkbox.is(':checked'));
            $checkbox.triggerHandler('change');
            updateDisplay();
        });
        $checkbox.on('change', function () {
            updateDisplay();
        });

        // Actions
        function updateDisplay() {
            var isChecked = $checkbox.is(':checked');

            // Set the button's state
            $button.data('state', (isChecked) ? "on" : "off");

            // Set the button's icon
            $button.find('.state-icon')
                .removeClass()
                .addClass('state-icon ' + settings[$button.data('state')].icon);

            // Update the button's color
            if (isChecked) {
                $button
                    .removeClass('btn-default')
                    .addClass('btn-' + color + ' active');
            }
            else {
                $button
                    .removeClass('btn-' + color + ' active')
                    .addClass('btn-default');
            }
        }

        // Initialization
        function init() {

            updateDisplay();

            // Inject the icon if applicable
            if ($button.find('.state-icon').length == 0) {
                $button.prepend('<i class="state-icon ' + settings[$button.data('state')].icon + '"></i> ');
            }
        }
        init();
    });
});

这是演示:http : //jsfiddle.net/9o41oykp/2/

问题:选中/未选中的样式似乎可以正常工作,但是因为这是单选,所以我需要将其设为互斥的意思是只能选中一个框(当您选中一个单选框时,其余(同一组中的)应该变为未选中状态)自动),但是现在您看到的是可以选中多个框(显示它的样式),我需要jQuery函数的帮助才能使其正常工作。

j08691

我更新了代码以使用单选按钮。问题是,当将其与复选框一起使用时,它可以工作,因为您可以修改单个复选框而不必担心兄弟姐妹,但是使用单选按钮时,您必须遍历所有兄弟姐妹,选中/取消选中每个兄弟姐妹,这需要循环每次进行更改时都会设置该设置。

jsFiddle示例

(请注意,在小提琴中,我暴露了单选按钮,以便您可以查看是否已选中每个按钮。)

$(function () {
    $('.button-checkbox').each(function () {
        // Settings
        var $widget = $(this),
            $button = $widget.find('button'),
            $checkbox = $widget.find('input:radio'),
            color = $button.data('color'),
            settings = {
                on: {
                    icon: 'glyphicon glyphicon-check'
                },
                off: {
                    icon: 'glyphicon glyphicon-unchecked'
                }
            };

        // Event Handlers
        $button.on('click', function () {
            $checkbox.triggerHandler('change');
            if ($(this).hasClass('btn-default')) {
                $checkbox.prop('checked', !$checkbox.is(':checked'));
                updateDisplay();
            }
        });

        // Actions
        function updateDisplay() {
            $('.button-checkbox').each(function () {
                var isChecked = $(this).find('input:radio').is(':checked');
                // Set the button's state
                $(this).find('button').data('state', (isChecked) ? "on" : "off");
                // Set the button's icon
                $(this).find('button').find('.state-icon')
                    .removeClass()
                    .addClass('state-icon ' + settings[$(this).find('button').data('state')].icon);
                // Update the button's color
                if (isChecked) {
                    $(this).find('button')
                        .removeClass('btn-default')
                        .addClass('btn-' + color + ' active');
                } else {
                    $(this).find('button')
                        .removeClass('btn-' + color + ' active')
                        .addClass('btn-default');
                }
            })
        }
        // Initialization
        function init() {
            updateDisplay();
            // Inject the icon if applicable
            if ($button.find('.state-icon').length == 0) {
                $button.prepend('<i class="state-icon ' + settings[$button.data('state')].icon + '"></i> ');
            }
        }
        init();
    });
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有功能的Bootstrap单选按钮

来自分类Dev

具有功能的Bootstrap单选按钮

来自分类Dev

如何在Bootstrap单选按钮组中制作具有相同高度的标签和值

来自分类Dev

具有单选按钮的Bootstrap输入对话框

来自分类Dev

jQuery检查具有一定值的单选按钮

来自分类Dev

无法使用jQuery选择具有值的单选按钮

来自分类Dev

带有输入框和单选按钮的jQuery总价

来自分类Dev

Bootstrap单选按钮-使用jQuery添加变量

来自分类Dev

使用jQuery创建单选按钮-Bootstrap

来自分类Dev

Bootstrap 3:具有控件标签的单选按钮在表单水平上是否起作用?

来自分类Dev

Bootstrap 3:具有控件标签的单选按钮是否在水平表单上起作用?

来自分类Dev

具有多维数组的单选按钮

来自分类Dev

具有多个值的单选按钮逻辑

来自分类Dev

如何使单选按钮具有不同的颜色?

来自分类Dev

jQuery选择所有单选按钮(列表和子列表中的按钮),但某些类除外

来自分类Dev

使用PHP和MySQL具有自发布功能的动态单选按钮

来自分类Dev

获取具有不同名称和相同for循环的单选按钮值

来自分类Dev

使用PHP和MySQL具有自发布功能的动态单选按钮

来自分类Dev

如何创建具有打开和关闭功能的单选按钮以显示图像?

来自分类Dev

在jQuery的一系列组中选择具有特定值的单选按钮

来自分类Dev

从具有单选按钮的多个表单中获取独特的价值-jQuery

来自分类Dev

使用jQuery选择/取消选择具有不同名称的单选按钮

来自分类Dev

jQuery validate() 用于具有相同名称、不同值的单选按钮

来自分类Dev

jQuery if单选按钮名称和值的条件

来自分类Dev

jQuery if单选按钮名称和值的条件

来自分类Dev

jQuery使用单选按钮隐藏和显示

来自分类Dev

图像作为带有jQuery的单选按钮

来自分类Dev

具有多选和单选的DataTable

来自分类Dev

具有多个按钮和响应操作的单个jQuery POST

Related 相关文章

  1. 1

    具有功能的Bootstrap单选按钮

  2. 2

    具有功能的Bootstrap单选按钮

  3. 3

    如何在Bootstrap单选按钮组中制作具有相同高度的标签和值

  4. 4

    具有单选按钮的Bootstrap输入对话框

  5. 5

    jQuery检查具有一定值的单选按钮

  6. 6

    无法使用jQuery选择具有值的单选按钮

  7. 7

    带有输入框和单选按钮的jQuery总价

  8. 8

    Bootstrap单选按钮-使用jQuery添加变量

  9. 9

    使用jQuery创建单选按钮-Bootstrap

  10. 10

    Bootstrap 3:具有控件标签的单选按钮在表单水平上是否起作用?

  11. 11

    Bootstrap 3:具有控件标签的单选按钮是否在水平表单上起作用?

  12. 12

    具有多维数组的单选按钮

  13. 13

    具有多个值的单选按钮逻辑

  14. 14

    如何使单选按钮具有不同的颜色?

  15. 15

    jQuery选择所有单选按钮(列表和子列表中的按钮),但某些类除外

  16. 16

    使用PHP和MySQL具有自发布功能的动态单选按钮

  17. 17

    获取具有不同名称和相同for循环的单选按钮值

  18. 18

    使用PHP和MySQL具有自发布功能的动态单选按钮

  19. 19

    如何创建具有打开和关闭功能的单选按钮以显示图像?

  20. 20

    在jQuery的一系列组中选择具有特定值的单选按钮

  21. 21

    从具有单选按钮的多个表单中获取独特的价值-jQuery

  22. 22

    使用jQuery选择/取消选择具有不同名称的单选按钮

  23. 23

    jQuery validate() 用于具有相同名称、不同值的单选按钮

  24. 24

    jQuery if单选按钮名称和值的条件

  25. 25

    jQuery if单选按钮名称和值的条件

  26. 26

    jQuery使用单选按钮隐藏和显示

  27. 27

    图像作为带有jQuery的单选按钮

  28. 28

    具有多选和单选的DataTable

  29. 29

    具有多个按钮和响应操作的单个jQuery POST

热门标签

归档