按班级

时间:2015-11-09 19:28:16

标签: javascript jquery

当我检查另一个按钮时,我试图禁用同一个类中的所有单选按钮。此功能适用于复选框,但不适用于我使用单选按钮时。任何帮助将不胜感激。

https://jsfiddle.net/neilcosby123/qssvzap4/1/

function radcheck(){
var ra = document.getElementById("main")
if(ra.checked){
    $(".radioclass").prop("disabled", true);
    $(".radioclass").attr("checked", false);
}

}

4 个答案:

答案 0 :(得分:1)

$(function(){
    var $radios = $('.radioclass');

    $('#main').on('click', function(){
        $radios.prop('disabled', this.checked).prop('checked', false);
    });
});

https://jsfiddle.net/qssvzap/7/

答案 1 :(得分:1)

没有任何上下文就很难写(比如你为什么要这样做?)。

我认为你需要的是:

$("#main").change(function() {
  var isChecked = $(this).is(":checked");

  $(".radioclass")
    .prop("disabled", isChecked)
    .prop("checked", !isChecked);
});

https://jsfiddle.net/qssvzap4/9/

答案 2 :(得分:0)

以下是使用vanilla js的方法,因为jquery并不是真正的关键,老实说,我觉得这种情况有点过分了。

function radcheck(){
    var ra = document.getElementById("main");
    if(ra.checked){
        var radios = document.querySelectorAll('.radioclass');
        for(var i=0;i<radios.length;i++){
           radios[i].checked = false;
           radios[i].disabled = true;
         }
    }
}

如果您希望它们切换,您可以执行相同的循环,而是执行:

   radios[i].checked = !radios[i].checked;
   radios[i].disabled = !radios[i].disabled;

答案 3 :(得分:-2)

实际上是你给小提琴。你没有链接jquery库。 检查小提琴 https://jsfiddle.net/stdeepak22/e9zeL6eL/1/

$(document).ready(function () {
    $('#main').click(function () {
        if ($(this).prop('checked')) {
            $(".radioclass").each(function () {
                $(this).prop("disabled", true);
                $(this).prop("checked", false);
                //$(".radioclass").attr("checked", false);
            });
        }
    })
});
相关问题