当我检查另一个按钮时,我试图禁用同一个类中的所有单选按钮。此功能适用于复选框,但不适用于我使用单选按钮时。任何帮助将不胜感激。
https://jsfiddle.net/neilcosby123/qssvzap4/1/
function radcheck(){
var ra = document.getElementById("main")
if(ra.checked){
$(".radioclass").prop("disabled", true);
$(".radioclass").attr("checked", false);
}
}
答案 0 :(得分:1)
$(function(){
var $radios = $('.radioclass');
$('#main').on('click', function(){
$radios.prop('disabled', this.checked).prop('checked', false);
});
});
答案 1 :(得分:1)
没有任何上下文就很难写(比如你为什么要这样做?)。
我认为你需要的是:
$("#main").change(function() {
var isChecked = $(this).is(":checked");
$(".radioclass")
.prop("disabled", isChecked)
.prop("checked", !isChecked);
});
答案 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);
});
}
})
});