代码之家  ›  专栏  ›  技术社区  ›  Alex Pliutau

Zend Form Radio默认选中

  •  4
  • Alex Pliutau  · 技术社区  · 14 年前

    $enabled = $this->createElement('radio', 'enabled')
                    ->setLabel('Enabled')
                    ->setMultiOptions(array('1'=>'yes', '0'=>'no'))
                    ->setValue($rank_values['enabled'])
                    ->setAttrib('id', 'enabled')
                    ->setAttrib('class', $action . '_enabled')
                    ->setSeparator('');
    

    我怎样才能把收音机调好?现在,当我打开我的脚本,没有选定的电台。我想选择“是”。怎么用?

    非常感谢。

    6 回复  |  直到 14 年前
        1
  •  9
  •   Alexander_F    11 年前

    更容易:)

    $enabled = $this->createElement('radio', 'enabled')
                    ->setLabel('Enabled')
                    ->setMultiOptions(array('1'=>'yes', '0'=>'no'))
                    ->setValue($rank_values['enabled'])
                    ->setAttrib('id', 'enabled')
                    ->setAttrib('class', $action . '_enabled')
                    ->setSeparator('')
                    ->setValue("1");
    
        2
  •  7
  •   markdrake    11 年前

    如果有人想知道,我正在使用数组表示法声明表单中的所有元素,在zend framework 2中,要在单选按钮中选择默认选项,必须添加属性值并使其具有默认要选择的值选项的键:

    // Inside your constructor or init method for your form //
    $this->add(
            [
                'type'       => 'Radio',
                'name'       => 'some_radio',
                'options'    => [
                    'value_options' => [
                        'opt1' => 'Radio option 1',
                        'opt2' => 'Radio option 2'
                    ]
                ],
                'attributes' => [
                    'value' => 'opt1' // This set the opt 1 as selected when form is rendered
                ]
            ]
        );
    

    我发现有些示例有点混乱,因为它们在值选项(0,1)中使用了数字键,所以当我看到'value'=>1时,我并不清楚这是值选项数组中的键。希望这对别人有帮助。

        3
  •  4
  •   shamittomar    14 年前

    ->setAttrib("checked","checked")
    

    因此,您的完整代码如下所示:

    $enabled = $this->createElement('radio', 'enabled')
                ->setLabel('Enabled')
                ->setMultiOptions(array('0'=>'no', '1'=>'yes'))
                ->setAttrib("checked","checked")
                ->setValue($rank_values['enabled'])
                ->setAttrib('id', 'enabled')
                ->setAttrib('class', $action . '_enabled')
                ->setSeparator('');
    

    [编辑] setValue :

    您也可以使用:

    ->setValue('1')
    

    这将检查由值表示的选项 1 哪个是 yes

        4
  •  4
  •   HappyCoder    9 年前

    根据手册,如果要使用数组表示法,您可以这样做: link to manual

     $this->add(
            [
                'name'       => 'someRadioMethod',
                'type'       => 'radio',
                'options' => [
                    'label' => 'Some descriptive label',
                    'value_options' => [
                        [
                            'value' => '1',
                            'label' => 'Label for 1',
                            'selected' => true,
    
                        ],
                        [
                            'value' => '2',
                            'label' => 'Label for 2',
                            'selected' => false,
    
                        ]
                    ],
                ],
            ]
        );
    
        5
  •  1
  •   LPL user462990    13 年前

    我发现如果你有一套过滤器 ->setvalue('X')

    我搬走了 ->addFilter('StringToLower')
    ->setSeparator('')->setValue('N');

    我请客了

        6
  •  0
  •   Alex Pliutau    14 年前

    是 啊。我已经用jQuery解决了这个问题:

    jQuery(document).ready(function(){
        var $radios = $('input:radio[name=enabled]');
        if($radios.is(':checked') === false) {
            $radios.filter('[value=1]').attr('checked', true);
        }
    });