Yii单选按钮问题

时间:2013-02-04 13:56:12

标签: forms yii radio-button

我使用Yii生成单选按钮 代码看起来像

    <span class="gender">
       <?php echo CHtml::activeRadioButton($model,'gender',array('value' => 'male')); ?>
    </span>

  <span class="gender">
       <?php echo CHtml::activeRadioButton($model,'gender',array('value' => 'female')); ?>
  </span>

它会生成下一个HTML代码

    <span class="gender">
<input id="ytweb\models\register_gender" type="hidden" value="0" name="web\models\register[gender]">

<input value="male" class="male" name="web\models\register[gender]"id="web\models\register_gender" type="radio"></span>

<span class="gender">
<input id="ytweb\models\register_gender" type="hidden" value="0" name="web\models\register[gender]">

<input value="female" class="female" name="web\models\register[gender]" id="web\models\register_gender" type="radio">

</span>

当我从这个表格获得POST时,如果我检查了女性它会返回女性,但是如果我对男性进行了检查则会返回0.我认为这是因为相同的输入ID。但我怎么能避免呢?

1 个答案:

答案 0 :(得分:5)

您可以将activeRadioButton配置为不输出值为0的“保护输入”。通过将参数'uncheckValue' => null作为选项数组的一部分传递来执行此操作:

echo CHtml::activeRadioButton($model,'gender',
    array('value' => 'male', 'uncheckValue' => null));
echo CHtml::activeRadioButton($model,'gender',
   array('value' => 'female', 'uncheckValue' => null));

尽管如此,使用activeRadioButtonList是最好的选择。您可以配置其template参数以指定自定义HTML:

$genders = array('male' => 'male', 'female' => 'female');
$options = array(
    'template'     => '<span class="gender">{input</span>',
    'uncheckValue' => null,
);
echo CHtml::activeRadioButtonList($model, 'genger', $genders, $options);
相关问题