【问题标题】:Accessing ZF2 created multiple select box using javascript使用 javascript 访问 ZF2 创建的多个选择框
【发布时间】:2013-08-01 19:01:04
【问题描述】:

我使用 zend 框架 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 name="contacts[]" multiple="multiple" size="10">

我已尝试更改 js 函数调用中的名称:

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

但我仍然没有任何运气让它工作。如果我从选择框中删除多个选项,它会起作用,但如果可能的话,我想使用多个选择框。有没有办法使这项工作?s

【问题讨论】:

    标签: javascript zend-framework2 zend-form multiple-select


    【解决方案1】:

    我意识到表单元素也可以通过 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)');
    

    【讨论】:

      猜你喜欢
      • 2014-05-20
      • 2021-07-07
      • 1970-01-01
      • 1970-01-01
      • 2014-09-23
      • 1970-01-01
      • 2020-09-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多