2009-10-25 2 views
0

В конце концов, я хочу, чтобы мой Zend Form, чтобы сделать этот HTML:Можно добавить javascript в Zend_Form_Element_Radio?

<p>Do you have any documents to upload?</p> 
<p>Yes <input type="radio" value="Yes" name="uploadChoice" onClick="showTable()">&nbsp;&nbsp;No <input type="radio" value="No" name="uploadChoice" onClick="hideTable()" checked></p> 

Вот что у меня в Zend_Form:

//create radio buttons 
$uploadQuestion = new Zend_Form_Element_Radio('upLoadQuestion'); 
$uploadQuestion->setLabel('Do you have any documents to upload?') 
->addMultiOptions(array(
'yes' => 'Yes', 
'no' => 'No' 
)) 
->setSeparator(' '); 

Проблема я бегу в том, чтобы добавить onClick = "showTable()" и onClick = "hideTable()" элементы для соответствующих переключателей.

В качестве альтернативы я мог бы переработать javascript и добавить к переключателям что-то вроде onClick = "toggleTable()", если я не могу добавить что-то другое для каждой из переключателей. Но, Зенд позволил мне сделать это?

+0

Ваш HTML код показывает 2 различных радиоэлементов, вашу форму ZEND использует один элемент? – opHASnoNAME

ответ

1

Вам просто нужно использовать setAttrib как это:

$uploadQuestion->setAttrib('onClick','showTable();'); 

Очевидно, что в этом случае вы должны будете использовать ту же самую функцию JS для всех переключателей «uploadQuestion радио-группы».

Надеюсь, что это поможет somenone.

0

Почему бы вам просто не сделать это с помощью javascript? Вам не нужно, чтобы ваш onclick был внутри элемента ввода. Просто используйте javascript, чтобы вытащить его по id, а затем добавьте прослушиватель событий.

В качестве альтернативы вам может потребоваться сообщение http://paveldubinin.com/2011/04/zend-form-radio-buttons/, описывающее, как это решить, разбивая группу радиосвязи на множество независимых элементов радиообъектива, но которые ведут себя как единое целое.

Вы можете затем назначить любые параметры (в том числе onlclick, если хотите), этим отдельным переключателям.

0

Добавить в код:

->setAttrib('onclick', 'showHideFields()') 

затем просто добавить JQuery сценарий, что-то вроде этого:

<script type="text/javascript> 
function showHideFields(){ 
      if($("input[type='radio']:checked").val()==='1'){ 
      //is checked 
      }else if($("input[type='radio']:checked").val()==='0'){ 
      //is not checked 
      } 
} 
</script> 

пс. Я стараюсь с моим кодом

->setAttrib('onclick', 'showHideFields();') 

И оно не работать так, я стараюсь

->setAttrib('onclick', 'showHideFields()') 

И РАБОТАТЬ ПРАВИЛЬНО (ZF 1,12)

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