2013-11-18 3 views
-3

У меня есть эта проблема с включением и отключением раздела полей, если для другого раздела полей задано определенное значение. Рассмотрите jsfiddle для html-кода.
условия являютсяВключение и отключение всех дочерних элементов

  1. Если все поля partA выбраны в качестве No, включите partB.
  2. Если все поля partB выбраны как No, тогда включите partC.

Попробуйте 1
Сначала я попытался отключить элементы PartB и PARTC, которые не работают.

$(function() { 
    $('.group').attr('name','partB').find('input').attr('disable', true); 
    $('.group').attr('name','partC').find('input').attr('disable', true);       
}); 

Я не знаю, как бы убедиться, если все дочерние элементы выбраны в качестве No в group дел.

+2

где вы застряли ??? –

+0

A '

+0

Обновлена ​​моя скрипка. Спасибо за все downvotes. –

ответ

1

jsBin demo

Имея этот HTML:

<div class="group" id="partA"> 
    <span> PART A</span><br/> 
    Option 1 
    <input type="radio" name="optionsRadios1" value="option1"/>Yes 
    <input type="radio" name="optionsRadios1" value="option2"/>No 
    <br /> 
    Option 2 
    <input type="radio" name="optionsRadios2" value="option1"/>Yes 
    <input type="radio" name="optionsRadios2" value="option2"/>No 
</div> 

JQ:

$(function() { 

    $('#partB, #partC').find('input').prop('disabled', true); 

    function testChecked(){ 
    var $par = $(this).closest('.group'); 
    var $rad2 = $par.find('[value="option2"]'); 
    var allNo = $rad2.filter(':checked').length == $rad2.length; 
    $par.next('.group').find(':radio').prop('disabled', !allNo); 
    if(!allNo){ 
     $par.nextAll('.group').find(':radio').prop({'disabled':true, 'checked':false}); 
    } 
    } 

    $('.group :radio').change(testChecked); 

}); 

выше будет работать также более 2-х радио групп на .group

Ваши ошибки:

"disable", "true" должен быть "disabled", "true"
<label> может управлять только один внутренний элемент (. Так что я удалил его)
<div> AFAIK не должен иметь атрибут name (так что я назначен ID)

+0

Спасибо за ответ. Только одна проблема. 'PartB' и' PartC' - значения атрибутов имени. Будет ли '$ ('. Group'). Attr ('name', 'partB, partC'). Find ('input')' work? –

+0

@HimanshuYadav :) добро пожаловать! Пожалуйста, дайте мне официальную документацию, в которой говорится, что 'DIV' может иметь атрибут name. Если вы не создали HTML-код, спросите, чем тот, кто сделал * «Как вы планируете проверять это». * –

+1

@HimanshuYadav '$ ('. Group'). Attr ('name', 'partB, partC'). find ('input') 'это недопустимое использование jQuery. То, как вы используете '.attr()', - ** присваивать ** вместо использования 'attr' в качестве селектора типа' $ (". Group [name = 'partB'], .group [name = 'partC'] "), что приведет (прочитайте мой комментарий выше) в действительно непрофессиональной вещи. –

Смежные вопросы