从Zend Form元素中删除id属性

时间:2015-02-03 13:54:28

标签: javascript php jquery forms zend-framework

我有:

$this->addElement('select', 'type', array(
        'label' => 'Banner type',
        'required' => true,
        'multiOptions' => array(
            ''   => 'Please select',
            '1'  => 'Image',
            '3'  => 'Flash',
            '4'  => 'Html'
        ),
        'value' => '',
));

但是在渲染选定的dropdown时,它具有我不想要的id = "type"属性。我在JavaScript中克隆它,并且在所有事件之后它无法正常工作。

2 个答案:

答案 0 :(得分:1)

您可以在克隆后重置/更改元素的ID

(在你做任何事情之前,即注入dom)

简单地创建一个变量来保存克隆并更改它的id属性。例如:

$(function (){
    var div = $('#myId');
    console.log(div[0].id); //shows the element id

    var newDiv = div.clone(); //clone the element
    console.log(newDiv[0].id); //shows original element id

    newDiv[0].id = "myNewId"; //change the id
    console.log(newDiv[0].id); //shows 'myNewId'
});

答案 1 :(得分:1)

您最好修改您的javascript(在克隆元素时更改ID)。

如果要使用ZF更改表单元素的结构,则必须创建自己的扩展Zend_Form_Element_Select的select元素,然后创建自己的formSelect视图助手,扩展Zend_View_Helper_FormSelect并覆盖formSelect()方法。然后看下面的评论:

 $xhtml = '<select'
            . ' name="' . $this->view->escape($name) . '"'
            . ' id="' . $this->view->escape($id) . '"' // remove this line
            . $multiple
            . $disabled
            . $this->_htmlAttribs($attribs)
            . ">\n    ";