2013-07-19 46 views
1

我試圖在ZF2內的單選按鈕上添加data-值。是否可以控制使用value_options指定的每個輸入?ZF2 - 控制/定製單個收音機/複選框

典型的單選按鈕添加到形式:

$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來改變一些東西,因此它需要保存數據屬性。

是否有這樣的可能呢?

回答

6

它可以通過提供一個數組(或實現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', 
       ), 
      ), 
     ), 
    ), 
)); 

https://github.com/zendframework/zf2/blob/master/library/Zend/Form/View/Helper/FormMultiCheckbox.php#L177

這應該在收音機工作,多選框&選擇了。

+0

該死的,我太親近了!謝謝 :) –