【问题标题】:Disabled radio buttons still clickable禁用的单选按钮仍然可以点击
【发布时间】:2017-02-03 01:24:45
【问题描述】:

我正在使用 Bootstrap 3 并使用单选按钮组

<div class="form-group required">
    <label for="option1" class="control-label col-md-4">Option 1</label>
    <div class="col-md-6">
        <div class="btn-group" data-toggle="buttons">
            <label class="btn">
                <input id="opt1-yes" name="option1" type="radio" value="1"><i class="fa fa-circle-o fa-2x"></i><i class="fa fa-dot-circle-o fa-2x"></i><span> Yes</span>
            </label>
            <label class="btn">
                <input id="opt1-no" name="option1" type="radio" value="0"><i class="fa fa-circle-o fa-2x"></i><i class="fa fa-dot-circle-o fa-2x"></i><span> No</span>
            </label>
        </div>
    </div>
</div>
<div class="form-group required">
    <label for="option2" class="control-label col-md-4">Option 2</label>
    <div class="col-md-6">
        <div class="btn-group" data-toggle="buttons">
            <label class="btn">
                <input id="opt2-yes" name="option2" type="radio" value="1"><i class="fa fa-circle-o fa-2x"></i><i class="fa fa-dot-circle-o fa-2x"></i><span> Yes</span>
            </label>
            <label class="btn">
                <input id="opt2-no" name="option2" type="radio" value="0"><i class="fa fa-circle-o fa-2x"></i><i class="fa fa-dot-circle-o fa-2x"></i><span> No</span>
            </label>
        </div>
    </div>
</div>

jQuery

$('input[type=radio][name=option2]').change(function() {      
    if($('#opt2-yes').is(':checked')) {
        $('input[type="radio"][name="option1"]').attr('disabled', true).parent('.btn').addClass('disabled');
        $('#opt1-no').prop('checked', true);
        $('#opt1-yes').parent('.btn').removeClass('active');
        $('#opt1-no').parent('.btn').addClass('active');
    }
    else {
        $('input[type="radio"][name="option1"]').attr('disabled', false).parent('.btn').removeClass('disabled');
    }
});

假设我将第一个单选按钮选项设置为“是”,第二个选项设置为“是”,第一个选项应更改为“否”并被禁用。据我所知,这似乎有效,但如果我点击第一组,即使它们被禁用,我也可以更改选项

我在https://jsfiddle.net/tux7cftm/ 创建了一个小提琴,所以你可以看到问题

任何帮助表示赞赏

【问题讨论】:

    标签: jquery css twitter-bootstrap-3 radio-button


    【解决方案1】:

    将以下 CSS 添加到您的样式表中

    .disabled {
      pointer-events: none;
    }
    

    参考CSS pointer-events

    【讨论】:

    • 谢谢...这解决了问题
    猜你喜欢
    • 2013-08-14
    • 1970-01-01
    • 2016-09-03
    • 1970-01-01
    • 2012-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多