我使用zend framework 2在表单对象上创建了一个多选框:
$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元素的名称附加了[]:
<select name="contacts[]" multiple="multiple" size="10">
我尝试在js函数调用中更改名称:
->setAttribute('onClick', 'moveAll(this.form.contacts[],this.form.newContacts[])');
但是我仍然没有运气好运。如果我从选择框中删除多个选项它可以工作,但我想尽可能使用多选框。反正有没有让这项工作?s
答案 0 :(得分: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)');