2013-08-01 70 views
0

我已經使用Zend框架2創建的表單對象上的多個選擇框創建多個選擇框:訪問ZF2使用javascript

$contacts = new Element\Select('contacts'); 
$contacts->setLabel('All Contacts') 
     ->setAttribute('name', 'contacts') 
     ->setAttribute('multiple', 'multiple') 
     ->setAttribute('size', 10) 
     ->setOptions(array('options' => $users)); 

我想執行一些JavaScript當按下表單上的按鈕:

$moveAllRight = new Element\Button('moveAllRight'); 
$moveAllRight->setLabel('Move All ->') 
     ->setAttribute('value', 'Move All ->') 
     ->setAttribute('onClick', 'moveAll(this.form.contacts,this.form.newContacts)'); 

不幸的是,當頁面被創建的多個選擇元件的名稱附加用[]:

<select name="contacts[]" multiple="multiple" size="10"> 

我已經試過了JS函數調用中改變名稱:

->setAttribute('onClick', 'moveAll(this.form.contacts[],this.form.newContacts[])'); 

,但我現在仍然沒有任何運氣得到它的工作。如果我從選擇框中刪除多個選項,它將起作用,但如果可能的話,我想使用多個選擇框。有沒有辦法使這項工作?s

回答

0

我意識到表單元素也可以由id引用。我設置一個id屬性具有相同的值作爲名字,我試圖用:

$contacts = new Element\Select('contacts'); 
$contacts->setLabel('All Contacts') 
     ->setAttribute('id', 'contacts') 
     ->setAttribute('multiple', 'multiple') 
     ->setAttribute('size', 10) 
     ->setOptions(array('options' => $users)); 

的元素是頁面上創建:

<select name="contacts[]" id="contacts" multiple="multiple" size="10"> 

,現在我可以引用它像我本來想到:

->setAttribute('onClick', 'moveAll(this.form.contacts,this.form.newContacts)');