0

最终,我希望我的 Zend Form 呈现这个 HTML:

<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()" 的内容。但是,Zend 会让我这样做吗?

4

3 回答 3

1

你只需要像这样使用 setAttrib :

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

显然,在这种情况下,您必须对“uploadQuestion”单选组的所有单选按钮使用相同的 JS 函数。

希望它会帮助别人。

于 2010-05-03T15:30:05.743 回答
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)

于 2013-05-20T14:00:30.983 回答
0

你为什么不直接用 javascript 来做这件事呢?您不需要 onclick 在输入元素内。只需使用 javascript 通过 id 拉取它,然后添加事件侦听器。

或者,您可能对这篇文章感兴趣http://paveldubinin.com/2011/04/zend-form-radio-buttons/描述如何通过将单选组拆分为一组独立的单选按钮元素来解决此问题,但其行为类似于单身的。

然后,您可以将任何参数(包括 onlclick,如果您愿意)分配给这些单独的单选按钮。

于 2011-04-05T13:40:38.793 回答