1

我使用 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。但是我该如何避免呢?

4

1 回答 1

5

您可以配置activeRadioButton为不输出带有 value 的“保护输入” 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);
于 2013-02-04T14:28:50.093 回答