2015-11-09 2 views
0

Я пытаюсь отключить все переключатели в том же классе, когда проверяется другой. Эта функция работает с флажками, но не при использовании переключателей. Любая помощь будет оценена по достоинству.Отключить группу переключателей по классу

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

Почему вы не просто скрыть кнопки радио вместо того, чтобы их отключить? – Cruiser

+0

Я также должен включить их, когда выбран другой, поэтому я не хочу, чтобы они были скрыты. – user2168066

+2

FYI - Ваш JSFiddle не ссылается на JQuery, так что все не получится. – Twisty

ответ

1

Трудно писать без какого-либо контекста (например, почему вы хотите это сделать?).

Я полагаю, что то, что вам нужно это:

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

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

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

+0

Это форма со списком вариантов лечения в разных категориях. Радиоприемник, чтобы выбрать категорию, необходимо выбрать медикаменты в этой категории. Проблема заключается в том, что пользователи продолжают выбирать одну категорию, а медикаменты - в другой. – user2168066

+0

Это трюк, спасибо за пример. – user2168066

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

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

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

+0

Это работает для меня! – tracyak13

+0

Это хорошо, но должен быть переключатель, поэтому он может быть включен, если вы хотите включить, чтобы снова нажимать кнопки, вам нужно обновить страницу. –

+0

Изменил его и установил его снова. – Taplar

0

Вот как это сделать с ванильным 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; 
-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); 
      }); 
     } 
    }) 
}); 
Смежные вопросы