我正在尝试在ZF2中的单选按钮上添加data-
值。是否可以控制用value_options
指定的每个输入?
添加到表单的典型单选按钮:
$this->add(array(
'type' => 'radio',
'name' => 'duration',
'options' => array(
'value_options' => array(
'daily' => 'Daily',
'weekly' => 'Weekly',
'monthly' => 'Monthly',
),
),
));
最终,我想要以下内容,因此我可以为每个广播项目指定单独的参数/选项:
$this->add(array(
'type' => 'radio',
'name' => 'duration',
'options' => array(
'value_options' => array(
array(
'attributes' => array(
'value' => 'daily',
'data-item' => 'apple'
),
'options' => array(
'label' => 'Daily'
)
),
array(
'attributes' => array(
'value' => 'weekly',
'data-item' => 'orange'
),
'options' => array(
'label' => 'Weekly'
)
),
array(
'attributes' => array(
'value' => 'monthly',
'data-item' => 'pear'
),
'options' => array(
'label' => 'Monthly'
)
),
),
),
));
我想要上述的原因是,我想在选择单选按钮时使用JavaScript来改变某些内容,因此它需要保存数据属性。
这样的事情可能吗?
答案 0 :(得分:7)
可以通过提供一个数组(或实现ArrayAccess的对象)而不是单个值来完成(几乎与您在示例中所写的一样)。
$this->add(array(
'type' => 'radio',
'name' => 'duration',
'options' => array(
'value_options' => array(
'daily' => array(
'label' => 'Daily',
'value' => 'daily',
'attributes' => array(
'data-item' => 'apple',
),
),
'weekly' => array(
'label' => 'Weekly',
'value' => 'weekly',
'attributes' => array(
'data-item' => 'orange',
),
),
'monthly' => array(
'label' => 'Monthly',
'value' => 'monthly',
'attributes' => array(
'data-item' => 'pear',
),
),
),
),
));
这应该适用于无线电,多个复选框和也选择了。