【问题标题】:Remove id attribute from Zend Form element从 Zend Form 元素中移除 id 属性
【发布时间】:2015-02-03 13:54:27
【问题描述】:

我有:

$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 克隆它,但在所有事件之后它不能正常工作。

【问题讨论】:

    标签: javascript php jquery forms zend-framework


    【解决方案1】:

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

    如果你想用 ZF 改变你的表单元素的结构,你必须创建你自己的扩展 Zend_Form_Element_Select 的选择元素,然后创建你自己的扩展 Zend_View_Helper_FormSelect 的 formSelect 视图助手并覆盖 formSelect() 方法。然后在下面查看我的评论:

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

    【讨论】:

      【解决方案2】:

      克隆后,您可以重置/更改元素的 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'
      });
      

      【讨论】:

      • 那么 php 呢?当我想通过 php 这样做时?
      猜你喜欢
      • 2011-04-04
      • 1970-01-01
      • 2022-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-30
      相关资源
      最近更新 更多