2016-08-24 2 views
2

Ci-dessous mon code pour générer une liste de cases à cocher dans le cadre Yii 2.Comment supprimer la classe des parents DIV de CheckBoxList() dans le cadre Yii 2

<?php $form = ActiveForm::begin(); ?> 
    <?php echo $form->field($model, 'my_property')->checkboxList(['A', 'B', 'C']) ?> 
<?php ActiveForm::end(); ?> 

Cela génère la liste des cases à cocher HTML de suivi.

<div class="form-group"> 
    <label class="control-label" for="my_property">My Property</label> 
    <input type="hidden" name="Model[my_property]" value=""> 
    <div id="model-my_property"> 
     <div class="checkbox"> 
      <label> 
       <input type="checkbox" name="Model[my_property][]" value="0"> A 
      </label> 
     </div> 
     <div class="checkbox"> 
      <label> 
       <input type="checkbox" name="Model[my_property][]" value="1"> B 
      </label> 
     </div> 
     <div class="checkbox"> 
      <label> 
       <input type="checkbox" name="Model[my_property][]" value="2"> C 
      </label> 
     </div> 
    </div> 
    <p class="help-block help-block-error"></p> 
</div> 

Comment puis-je supprimer le class="checkbox" du div qui est directement entoure la balise <label>? J'ai essayé template, checkboxTemplate et inputTemplate, avec ceux-ci je peux seulement toucher l'extérieur div.

Répondre

2

Je suppose que vous utilisez yii\bootstrap\ActiveForm et non par défaut yii\widgets\ActiveForm parce que cet élément est stylé.

Solution la plus simple: utilisez la deuxième classe ActiveForm pour qu'elle ne soit pas modifiée.

Et si vous ne voulez pas changer ActiveForm classe:

$form 
->field($model, 'my_property') 
->checkboxList(
    ['A', 'B', 'C'], 
    ['item' => function ($index, $label, $name, $checked, $value) { 
     return '<div>' 
       . '<label>' 
       . '<input type="checkbox" name="' . $name . '" value="' . $value . '"> ' 
       . $label 
       . '</label>' 
       . '</div>'; 
    }] 
);