是否可以在Zend表单中显示和隐藏onclick子表单
Is it possible to show and hide sub form onclick in a Zend form
只是想知道是否可以在单选检查事件或按钮onclick事件的zend表单中显示和隐藏子表单。因为我有一个带有用户字段元素的表单,现在我想要一个带有密码元素的子表单,这将使用户能够选择性地更改他们的密码。然而,我只想在请求时显示密码元素(即:单击单选按钮"更改密码",更改密码元素就会出现)。
这在Zend''Form中可能吗?还是我需要使用客户端javascript来显示和隐藏元素?
这是可能的,但这类事情是客户端的,所以你需要使用javascript来完成。Personnaly,我喜欢使用jQuery来处理这类事情,这让它变得容易多了。下面是一个如何做到这一点的例子
class My_Form extends Zend_Form {
$field = $this->createElement('select', 'myselect');
$field->setLabel('Choose to display the form or not');
$field->setMultiOptions(array('1'='Display', '2'=>'Do not display'));
$this->addElement($field);
$field = $this->createElement('text', 'optionaltext');
$field->setLabel('This is an optional field');
$this->addElement($fiel);
}
现在,在您的布局中,应该包括jQuery库:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript">
最后,您应该包含另一个.js文件(或者简单地将代码嵌入页面上的<script>标记中)。
$(document).ready(function() {
$(function() {
//Function triggered when changing the value in the drop down
$('#myselect').change(function(event) {
if($('#myselect').val() == 1) {
//Show elements
$('#optionaltext').show();
//The following line shows/hides all the dd/dt wrappers as well
$('[id*=optionaltext]).show();
} else {
//Hide elements
$('#optionaltext').hide();
//The following line shows/hides all the dd/dt wrappers as well
$('[id*=optionaltext]).hide();
}
});
});
});
现在请记住,我还没有测试代码,我只是在喝完当天的第一杯咖啡之前就把它写在脑子里了,所以……它可能有一些错误。话虽如此,这应该是你想做的事情的一个好的开始。如果有什么东西缺失或有一个你找不到的bug,请在这里问你的问题。希望这能有所帮助!
相关文章:
- 使用javascript取消隐藏和隐藏表单中的某些元素
- 提交时隐藏RSForm表单
- 添加和删除隐藏字段数组中的值,而不提交表单
- HTML5在提交并显示所需标签后显示隐藏的表单元素
- 我的表单上的SpringWebFlow2中的每个转换都需要隐藏按钮吗
- 在提交时设置表单隐藏值
- 用第一个表单值(HTML、Javascript)填充第二个表单隐藏字段
- Javascript表单隐藏可见操作
- 可以'无法将表单隐藏在JS中
- 获取函数的表单隐藏变量
- jquery ui模式框中的表单隐藏后,键盘将不再被调用
- 获取从函数到 php 的表单隐藏变量
- 将表单隐藏字段变量从一个函数传递到另一个函数
- 在iFrame(不同域)表单隐藏字段中抓取父级引用
- 表单隐藏值不工作
- 从复选框中获取值-将其发送到表单(隐藏字段)
- HTML表单隐藏变量不显示在php
- 在提交前输入lat和lng值到表单隐藏字段
- 使用按钮 ID 更新表单隐藏字段值
- HTML表单隐藏/显示基于Div