2015-02-03 2 views
1

у меня есть:Удалить идентификатор атрибута из Zend Form элемента

$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, и после всех событий он работает неправильно.

ответ

1

Лучше измените свой javascript (измените идентификатор, только когда элемент клонирования).

Если вы хотите изменить структуру вашего элемента формы с ZF, вы должны создать свой собственный выберите элемент, проходящий Zend_Form_Element_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 "; 
1

Вы можете сбросить/изменить идентификатор элемента, как только его клонировали

(прежде чем сделать что-нибудь с ним то впрыснуть обратно в йот)

Простой клеть переменная для хранения клона и изменяет его 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' 
}); 
+0

а как насчет php? когда я хочу сделать это через php? – sstauross

+0

см. Ответ @Freez – atmd

Смежные вопросы