HTML 表单字段根据从下拉列表中选择的选项显示/隐藏
HTML Form field show/hide as per option selected from dropdown
今天,我在开发网站的道路上遇到了另一个大问题。我有一个带有一些基本 CSS 的正常形式。现在我想以这种方式使用表单,默认情况下某些字段将被隐藏,相应的文本字段将根据从下拉列表中选择的菜单激活。我首先想到以其他方式做PHP,但这不适合我的要求。我想要一些代码,它可以在同一页面上运行而无需刷新。所以我需要一些JavaScript或jQuery或Ajax的工作。但我不擅长这种语言,所以我需要你的帮助。
在做了大量的谷歌搜索之后,我找到了一段对我有用的JavaScript代码。这 http://jsfiddle.net/ZxLU9/
但问题是它仅适用于网站上给出的两个选项。我试图添加id3
.但是当我增加 id 时,代码不再有效。此外,尽管此代码使用的是tbody,但隐藏的表单设计完全被破坏了。我在这里分享我的完整代码。在代码中有一些PHP代码,忽略它,我现在不关心。只需用我的实际设计修复我这个问题.
请
您可以在此处访问完整代码:http://jsfiddle.net/QvJH6/2/
检查名为"额外"的字段。 。这就是我想放置该代码的地方。
使用 Jquery 更改事件。
$('#select_box').change(function() {
if($(this).val() == "somevalue"){
if($(this).next('input').css("display") == "none"){
$(this).next('label').show();
$(this).next('input').show();
//Code to hide any existing fields go here.
}
}
});
如果你使一切保持一致,这应该有效。如果没有,那么您将不得不为每个选择框做一个,并指定要显示的字段
//将函数调用从
//onchange="display(this,'text','image');"
//自onchange="display(this,'text','image',invisible);"
并且还将 JavaScript 中的显示函数更改为
function display(obj,id1,id2,id3) {
txt = obj.options[obj.selectedIndex].value;
document.getElementById(id1).style.display = 'none';
document.getElementById(id2).style.display = 'none';
document.getElementById(id3).style.display = 'none';
if ( txt.match(id1) ) {
document.getElementById(id1).style.display = 'block';
}
if ( txt.match(id2) ) {
document.getElementById(id2).style.display = 'block';
}
if ( txt.match(id3) ) {
document.getElementById(id2).style.display = 'block';
}
}
相关文章:
- CKeditor:更改对话框中的默认选择选项
- 如何在从多选下拉列表中选择选项值时动态生成文本框
- AngularJs列表ng单击以选择选项转换
- 使用基于文本的 Jquery 选择选项
- 当选择值x时,Javascript需要在正确的位置显示文本区域,从而循环通过具有选择选项的表单
- 在php和mysql中选择选项.一旦选择了选项,就列出我的sql数据库数据
- 选择选项时如何显示警报
- 使用php动态更改选择选项
- 选择“选择选项”时显示文本.怎么做
- LEAFLET地图和带有选择选项的标记-ANGULARjs
- 使用js将动态内容添加到选择选项列表中
- 用于使用javascript循环选择选项
- AngularJS-选择选项并在函数中使用它
- 禁用/启用基于单选/选择选项所选Javascript的文本框
- 如何使用jQuery隐藏与选择选项相关的选择选项列表
- 选择选项是添加或删除事件
- 使用jQuery向“选择选项”添加默认属性
- 构建HTML选择字段并使用JavaScript数组选择选项
- 带有动态选择选项的Firefox html5验证异常
- 只有当Angular从资源对象检索数据时,才选择选项元素