多个文本字段,根据单选选择显示/隐藏(Html,JS)
Multiple text field, show/hide based on radio selection (Html,JS)
我现在正在研究一个form
,遇到了以下问题。
问题
我在同一页面上有多个问题,答案选项完全相同(是/否/也许),其中一个是"也许"。用户选中名为"也许"的radio-button
或check-box
后,应出现text field
。我已经实现了一个javascript,但它似乎不起作用。当有多个文本字段和单选按钮时,我真的不知道如何编程。
我对HTML/Jquery/Javascript/CSS相当陌生。
如何实现这一点?我知道有人问过类似的问题,但我现在真的一无所知。
非常感谢您的支持!
[编辑] 我尝试提供相同的 id,但它似乎不起作用。
这是对代码的摆弄:http://jsfiddle.net/03gkgfah/1/
这是表格的匿名摘录(我不是故意的,所以你可以有一个更好的概述):
<fieldset data-mini="false" data-inline="true">
<legend>1. Test question 1</legend>
<div class="ui-grid-b ui-responsive">
<div class="ui-block-a">
<input name="Teil01_Frage01" id="tUmfrage01_p01_f01_q01_radio01" value="yes" type="radio">
<label for="tUmfrage01_p01_f01_q01_radio01">Yes</label>
</div>
<div class="ui-block-b">
<input name="Teil01_Frage01" id="tUmfrage01_p01_f01_q01_radio02" value="no" type="radio">
<label for="tUmfrage01_p01_f01_q01_radio02">No</label>
</div>
<div class="ui-block-a">
<input name="Teil01_Frage01" id="tUmfrage01_p01_f01_q01_radio03" value="maybe" type="radio">
<label for="tUmfrage01_p01_f01_q01_radio03">Maybe:</label>
</div>
<div class="ui-block-b" id="maybe_on">
<input name="Teil01_Frage01" id="tUmfrage01_p01_f01_q01_textinput01" value="" type="text" maxlength="150" placeholder="maybe...">
</div>
</div>
</fieldset>
<fieldset data-mini="false" data-inline="true">
<legend>2. Test question 2?</legend>
<div class="ui-grid-b ui-responsive">
<div class="ui-block-a">
<input name="Teil01_Frage02" id="tUmfrage01_p01_f01_q02_radio01" value="yes" type="radio">
<label for="tUmfrage01_p01_f01_q02_radio01">Yes</label>
</div>
<div class="ui-block-b">
<input name="Teil01_Frage02" id="tUmfrage01_p01_f01_q02_radio02" value="no" type="radio">
<label for="tUmfrage01_p01_f01_q02_radio02">No</label>
</div>
<div class="ui-block-a">
<input name="Teil01_Frage02" id="tUmfrage01_p01_f01_q02_radio03" value="maybe" type="radio">
<label for="tUmfrage01_p01_f01_q02_radio03">Maybe:</label>
</div>
<div class="ui-block-b" id="maybe_on">
<input name="Teil01_Frage02" id="tUmfrage01_p01_f01_q02_textinput01" value="" type="text" maxlength="150" placeholder="maybe...">
</div>
</div>
</fieldset>
<fieldset data-mini="false" data-inline="true">
<legend>2. Test question 3?</legend>
<div class="ui-grid-b ui-responsive">
<div class="ui-block-a">
<input name="Teil01_Frage03" id="tUmfrage01_p01_f01_q03_radio01" value="yes" type="radio">
<label for="tUmfrage01_p01_f01_q03_radio01">Yes</label>
</div>
<div class="ui-block-b">
<input name="Teil01_Frage03" id="tUmfrage01_p01_f01_q03_radio02" value="no" type="radio">
<label for="tUmfrage01_p01_f01_q03_radio02">No</label>
</div>
<div class="ui-block-a">
<input name="Teil01_Frage03" id="tUmfrage01_p01_f01_q03_radio03" value="maybe" type="radio">
<label for="tUmfrage01_p01_f01_q03_radio03">Maybe:</label>
</div>
<div class="ui-block-b" id="maybe_on">
<input name="Teil01_Frage03" id="tUmfrage01_p01_f01_q03_textinput01" value="" type="text" maxlength="150" placeholder="maybe...">
</div>
</div>
</fieldset>
.css:
#sonstiges_on{display:none;}
Javascript:
$(document).ready(function(){
$("#maybe_on").hide();
$("input:radio[name*='Teil']").change(function(){//*= to search for a substring
//='Teil' because the name of the buttons begin with Teil
//for example Teil01_Frage01
if(this.value == 'maybe' && this.checked){
$("#maybe_on").show();
}else{
$("#maybe_on").hide();
}
}); });
如注释中所述,ID 必须是唯一的,并且您的单选按钮共享相同的 ID 。除此之外,您可以使用以下jQuery:
$(document).ready(function () {
$(".maybe_on").hide();
$("input:radio[name^='Teil01_']").change(function () {
$(this).closest('.ui-grid-b.ui-responsive').find('.maybe_on').toggle((this.value == 'maybe' && this.checked));
});
});
js小提琴示例
创建了一个页面内 Javascript 函数,用于检查是否单击了有问题的输入字段。如果是,它会显示"也许"输入。
function yesnoCheck() {
if (document.getElementById('tUmfrage01_p01_f01_q01_radio03').checked) {
document.getElementById('maybe_on').style.display = 'block';
}
else document.getElementById('maybe_on').style.display = 'none';
}
编辑http://jsfiddle.net/sanova/03gkgfah/15/
相关文章:
- 如何使用JavaScript在没有html dom的情况下隐藏html元素
- Javascript/jQuery赢得't隐藏HTML元素
- 隐藏HTML元素中的JSON编码和解码
- 如何比较单元格值和隐藏 html 表中的行
- 只有当类是硬编码的时,才可以使用jQuery来显示/隐藏html内容
- 隐藏html页面中的某些字段以用于打印布局中的页眉/页脚
- 如何在Android 4.3及更早版本上隐藏HTML元素
- Javascript:显示/隐藏HTML节点
- 为什么这个Javascript没有隐藏HTML项目
- 隐藏HTML表单's“提交”按钮
- 使用jquery显示/隐藏html ul
- 显示几秒钟后隐藏 HTML 元素
- 如何隐藏 HTML 按钮
- 如何显示和隐藏 html 字段集 以及从 Asp.Net 代码后面设置图例文本
- 我可以根据换行动态隐藏 html 字符吗?
- 在所选选项更改时显示和隐藏 html 元素
- 多个文本字段,根据单选选择显示/隐藏(Html,JS)
- 在用户提交之前隐藏 HTML 元素
- 通过单击按钮数组获取隐藏 html 元素值的当前数组
- 如何通过MVC操作方法显示/隐藏HTML按钮