首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在集合字段集设置属性(id) (规则2,zend框架2)

如何在集合字段集设置属性(id) (规则2,zend框架2)
EN

Stack Overflow用户
提问于 2013-05-07 20:50:47
回答 3查看 3.4K关注 0票数 2

是否可以在由集合组成的字段集上设置id?我有几个实体(用户、地址、附件等),在我的user-entity中,有几个字段集是由一个集合组成的。因此一个用户可以有多个地址或附件。我的收藏是这样建立的:

代码语言:javascript
复制
$addressFieldset = new AddressFieldset($serviceManager);

$this->add(array(
   'type' => 'Zend\Form\Element\Collection',
   'name' => 'addresses',
   'options' => array(
       'label' => 'Choose address for user',
       'count' => 1,
       'should_create_template' => true,
       //'template_placeholder' => '__placeholder__',
       'allow_add' => true,
       'target_element' => $addressFieldset
       ),
   ));

$this->add(array(
     'name' => 'addAddress',
     'type' => 'button',
     'options' => array('label' => 'Add Address',
            ),
      ));
$this->get('addAddress')->setAttribute('onclick', 'return add_address()');

我的问题是我的userfieldset中有多个集合。因此,当我想要动态添加一些地址(我使用的示例:http://zf2.readthedocs.org/en/latest/modules/zend.form.collections.html)时,该示例具有以下javascript:

代码语言:javascript
复制
function add_address() {
    var currentCount = $('form > fieldset > fieldset').length;
    var template = $('form > fieldset > span').data('template');

    template = template.replace(/__index__/g, currentCount);

    $('form > fieldset').append(template);

    return false;
}

但是,我的问题是,如果我使用这个例子,它也在附件下面添加了addressfieldsets。我想要的是:

代码语言:javascript
复制
function add_address() {
    var currentCount = $('form > #addressFieldset > fieldset').length;
    var template = $('form > #addressFieldset > span').data('template');

    template = template.replace(/__index__/g, currentCount);

    $('form > #addressFieldset').append(template);

    return false;
}

这样,我只能访问addressFieldset,但是如何在AddressFieldset设置ID呢?我的树应该是这样的:

代码语言:javascript
复制
<form>
    <fieldset id="addressFieldset">
        <legend>Choose addresses</legend>
        <fieldset>
            //Data
        </fieldset>
    </fieldset>
    <fieldset id="attachmentFieldset">
        <legend>Choose attachments</legend>
        <fieldset>
            //Data
        </fieldset>
    </fieldset>
</form>

我不知道如何在字段集中设置id。请帮帮忙

EN

Stack Overflow用户

发布于 2014-03-21 20:34:49

不知道为什么ZF1的表单装饰器在ZF2中被丢弃了…

IMO修饰表单元素最有效的方法是“否决”ZF2的表单视图帮助器...尽管我做得很粗鲁...

代码语言:javascript
复制
    <?php
    namespace Application\Helpers\View;

    use Zend\Form\ElementInterface;
    use Zend\Form\View\Helper\FormCollection as BaseFormCollection;

    class FormCollection extends BaseFormCollection
    {
        public function render(ElementInterface $element)
        {
            if($element->getAttribute('name') == 'usertype')
                return str_replace('<fieldset>', '<fieldset class="noborder">', parent::render($element));
            else
                return parent::render($element);
        }
    }
票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16419547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档