2016-11-20 13 views
0

ActiveCheckboxListでチェックされた項目をキャプチャして、その値に基づいてフォームを変更できる方法はありますか?Yii2 ActiveCheckboxList項目チェック済みイベント

<?= $form->field($model, 'options')->checkBoxList($options) ?> 

これは、(予想通り)名前、値、およびデータインデックス付きチェックボックス入力タイプのシリーズを囲むHTML

<div id="classname-options"> 

タグを生成します。特定のオプションがチェックされている場合、フォーム上の別のフィールドの非表示/非表示を切り替える必要があります。

1つのチェックボックスを使用して、私は常に入力タグにidを割り当て、jsハンドラを使用しました。しかし、私はチェックボックスのリストでそれを行う方法を知らないので、私はDOMの値をチェックしなければならないと思いました...?

ご協力いただきありがとうございます。

答えて

0

OK、ここで私はこの作業をしました。基本的に、JQueryの変更イベントハンドラは、リスト内の各チェックボックスをチェックしています。私の例では "CC"を探しています。 (私は値を持っているので、私は、データ・インデックスでチェックできなかった項目事前に知りません。)

をここにJSは私のビューファイルである:

<?php 
$script = <<< JS 
$(function() { 
     $('#otherfieldlbl').hide(); 
     $('#otherfield').hide(); 
}) 
$('#member-options').change(function() { 
    var ccexists = false; 
    $('#member-options input:checked').each(function() { 
     if ($(this).attr('value') == 'CC') { 
      ccexists = true; 
     } 
    }); 
    if (ccexists == true) { 
     $('#otherfieldlbl').show(); 
     $('#otherfield').show(); 
    } else { 
     $('#otherfieldlbl').hide(); 
     $('#otherfield').hide(); 
    }; 
}); 
JS; 
$this->registerJs($script); 
?> 

せて頂きますあなたがより良い方法を持っているかどうかを知る。それ以外の場合は、これが他の人に役立つことを望みます

関連する問題