如何将div添加到单选按钮?

时间:2012-08-09 12:30:39

标签: cakephp cakephp-2.0 radio formhelper

我是CakePHP的新用户。 我正在尝试添加一些div来包含我的输入+我的标签。

这就是我所拥有的:

<?php 
$option =  array ("value1" => "labelContent1", "value2" => "abelContent2");
echo $this->Form->input('name', array('type' => 'radio', 'options' =>  $option, 'div' => true, "legend" => false));
?>

<div class="input radio">
    <input type="hidden" name="data[Quiz][name]" id="ModelName_" value=""/>
    <input type="radio" name="data[Quiz][name]" id="ModelName1" value="value1" />
    <label for="ModelName1">labelContent1</label>

    <input type="radio" name="data[Quiz][name]" id="ModelName2" value="value2" />
    <label for="ModelName2">labelContent2</label>
</div>       

这就是我想要的:

<div class="input radio">
    <input type="hidden" name="data[Quiz][name]" id="ModelName_" value=""/>
    <div>
        <input type="radio" name="data[Quiz][name]" id="ModelName1" value="value1" />
        <label for="ModelName1">labelContent1</label>
    </div>
    <div>
        <input type="radio" name="data[Quiz][name]" id="ModelName2" value="value2" />
        <label for="ModelName2">labelContent2</label>
    </div>
</div>     

您是否知道是否可以使用FormHelper来实现它?

4 个答案:

答案 0 :(得分:4)

我知道这是一个旧帖子,但我不得不回复。 在不创建错误标记的情况下实现此目的的正确方法是使用选项之前和之后:

echo $this->Form->input('name', array( 'type' => 'radio',
                                     'separator'=> '</div><div>',
                                     'before' => '<div>',
                                     'after' => '</div>',
                                     'options' =>  $option,
                                     'label' => true,
                                     "legend" => false
                                   )
                                );

答案 1 :(得分:1)

看起来你无法通过Form Helper实现这一目标。收音机选项不包含在任何内容中。请参阅code

您可以在表单&gt;输入选项中添加'separator' => '<br/>',以便在各自的行中显示每个选项。

或自己实施。

答案 2 :(得分:1)

you can try this

$option =  array ("value1" => "labelContent1", "value2" => "abelContent2");

    echo $this->Form->input('name', array( 'type' => 'radio',
                                        'separator'=> '</div><div>',
                                         'options' =>  $option,
                                          'label' => true,
                                          "legend" => false
                                         )
                                    );

答案 3 :(得分:0)

<?php 
$option =  array ("value1" => "labelContent1", "value2" => "abelContent2");
echo $this->Form->input('name', array(
    'type' => 'radio',
    'options' =>  $option, 
    'templates' => ['radioWrapper' => '<div>{{label}}</div>'], 
    "legend" => false));
?>

这似乎适用于Cake 3。+