2015-04-23 7 views
1

Моих кнопок радио выглядит таквключить выпадающие на радио кнопки выбора

<div id="removeModal-85934"> 
<input type="radio" name="AdsArchive[status]" checked="checked" value="1" id="AdsArchive_status-85934"> 

<input type="radio" name="AdsArchive[status]" value="2" id="AdsArchive_status2-85934"> 
</div> 

когда AdsArchive_status-85934 проверяется, он должен включить выпадающее меню с идентификатором media-85934 и наоборот

вот мой Javascript

Yii::app()->clientScript->registerScript("delete-modal-js".$model->id, " 
     $(\"#removeModal-$model->id input[name=AdsArchive[status]]\").click(function() { 
      var val = $(\"#removeModal-$model->id input[name=AdsArchive[status]]:checked\").val(); 
      if (val === 1) { 
       $(\"#media-$model->id\").attr('disabled',false); 
       $(\"#date_sold-$model->id\").attr('disabled',false); 
      } 
      else { 
       $(\"#media-$model->id\").attr('disabled',true); 
       $(\"#date_sold-$model->id\").attr('disabled',true); 
      } 

     }); 
    "); 

У меня есть несколько <div id="removeModal-85934"> на этой же странице. где 85934 - это идентификатор, который изменяется. если возможно, мне нужен общий код для всего переключателя, поэтому мне не нужно добавлять $model->id в мой jquery при щелчке.

прямо сейчас, когда я нажимаю на радио, кнопка выпадающего меню не включена или отключена, любая идея, что я делаю неправильно здесь?

+0

Это устранило проблему? – NotJustin

ответ

0

Если я правильно помню attr, в этом не работает.

Вам нужно использовать prop (пример JSFiddle).

Здесь больше о разнице: SO question concerning attr vs prop

Что касается простого кода, чтобы сделать все, пожалуйста, проверьте этот JSFiddle.

Я внес немало изменений, может быть, слишком много?

Основное отличие заключается в том, что вы не должны копировать ID везде, только данные идентификатора и отметьте поле:

<div class="removeModal" data-id="<id>"> 
    <input type="radio" name="AdsArchive[<id>]" checked="checked" value="1"/>Yes<br/> 
    <input type="radio" name="AdsArchive[<id>]" value="2"/>No<br/> 
</div> 

Edit:. Чтобы избежать».parent() родителя () .parent() ", вы можете использовать

$(this).parents('.the-parent-element') 

Это будет искать в пределах родителей данного селектора. Например, JQuery's documentation about .parents()

+0

из-за моего html мне пришлось изменить ваш код на 'var id = $ (this) .parent(). Parent(). Parent(). Parent(). Parent(). Data ('id');' is там далеко НЕ повторять 'parent()' столько раз? – user2636556

+0

Я добавлю это, чтобы ответить. – NotJustin

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