2013-08-01 2 views
0

Я создал несколько поле выбора на форме объекта с использованием Zend Framework 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[])'); 

, но я все еще не имея каких-либо удачи при получении его на работу. Если я удалю множественную опцию из окна выбора, она будет работать, но я бы хотел использовать несколько полей выбора, если это вообще возможно. Есть ли все, чтобы сделать эту работу?

ответ

0

Я понял, что элементы формы также могут ссылаться на 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)');