jquery - 禁用的单选按钮仍然可以点击

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

我正在使用 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>

查询

$('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');
    }
});

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

我在 https://jsfiddle.net/tux7cftm/ 创建了一个 fiddle 这样你就可以看到问题了

感谢任何帮助

最佳答案

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

.disabled {
  pointer-events: none;
}

引用CSS pointer-events

关于jquery - 禁用的单选按钮仍然可以点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42008209/

相关文章:

javascript - swiper.js - 幻灯片更改时的幻灯片 CSS 动画问题

javascript - 如何通过 Jquery 单击链接添加输入?

css - 在文本字段中重叠 Font Awesome 图标

css - IE Print 从底部删除段落

css - 两个并排的div,相同的高度没有设置高度

Spring Thymeleaf 折叠表 :id

javascript - 使用 jQuery Bootgrid 方法

javascript - JqueryUI 自动完成在焦点上返回错误的项目

javascript - 检查变量是否大于某值但不是未定义

html - 如何在页面底部有一个粘性页脚,但又不与其他元素重叠?