繁体   English   中英

如何在表单中选择单选按钮时显示和隐藏div?

[英]How to show and hide divs when selecting radio buttons in form?

我有这样的表单结构:

 <div id="q1"> Question? <br> <input type="radio" name="novecislo" value="Ano1" id="f4"> Yes <br> <input type="radio" name="novecislo" value="Ne1" id="q2"> No </div> <div id="q2" class="none"> Question? <br> <input type="radio" name="operator" value="tmo"> T-mobile <br> <input type="radio" name="operator" value="o2"> O2 <br> <input type="radio" name="operator" value="vodafone"> Vodafone <br> </div> <div id="f4" class="none"> Question? <br> <input type="radio" name="tarif" value="tarif1"> Tarif 1 <br> <input type="radio" name="tarif" value="tarif2"> Tarif 2 <br> <input type="radio" name="tarif" value="tarif3"> Tarif 3 <br> Question? <br> <input type="checkbox" name="akt" value="roaming"> Roaming <br> <input type="checkbox" name="akt" value="pay"> Payments <br> </div> 

想法是在选择ID为“f4”的单选按钮后,将显示div“f4”,依此类推。

在div“q2”中我需要相同,选择单选按钮后我需要显示其他div。

是否也可以通过选择一个单选按钮显示2个或更多div? 如果是这样,怎么样?

将id属性更改为data-id并在无线电上添加change事件,例如

 $('[data-id]').on('change',function(){ $('.none').hide(); $('#'+$(this).attr('data-id')).show(); }); 
 .none{display:none} 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="q1"> Question? <br> <input type="radio" name="novecislo" value="Ano1" data-id="f4"> Yes <br> <input type="radio" name="novecislo" value="Ne1" data-id="q2"> No </div> <div id="q2" class="none"> Question? <br> <input type="radio" name="operator" value="tmo"> T-mobile <br> <input type="radio" name="operator" value="o2"> O2 <br> <input type="radio" name="operator" value="vodafone"> Vodafone <br> </div> <div id="f4" class="none"> Question? <br> <input type="radio" name="tarif" value="tarif1"> Tarif 1 <br> <input type="radio" name="tarif" value="tarif2"> Tarif 2 <br> <input type="radio" name="tarif" value="tarif3"> Tarif 3 <br> Question? <br> <input type="checkbox" name="akt" value="roaming"> Roaming <br> <input type="checkbox" name="akt" value="pay"> Payments <br> </div> 

您可以使用jquery获取所需内容,并使用自定义属性来定义目标div

 $(document).ready(function() { $('[data-target]').click(function() { $('.none').hide(); if ($(this).is(':checked')) { var target = $(this).attr('data-target'); $(target).show(); } }); }); 
 .none { display: none; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="q1"> Question? <br> <input type="radio" name="novecislo" value="Ano1" data-target="#f4,#f5"> Yes <br> <input type="radio" name="novecislo" value="Ne1" data-target="q2"> No </div> <div id="q2" class="none"> Question? <br> <input type="radio" name="operator" value="tmo"> T-mobile <br> <input type="radio" name="operator" value="o2"> O2 <br> <input type="radio" name="operator" value="vodafone"> Vodafone <br> </div> <div id="f4" class="none"> Question? <br> <input type="radio" name="tarif" value="tarif1"> Tarif 1 <br> <input type="radio" name="tarif" value="tarif2"> Tarif 2 <br> <input type="radio" name="tarif" value="tarif3"> Tarif 3 <br> Question? <br> <input type="checkbox" name="akt" value="roaming"> Roaming <br> <input type="checkbox" name="akt" value="pay"> Payments <br> </div> <div id="f5" class="none"> Question? <br> Seconde div </div> 

我不确定什么时候应该显示。 但是在一个例子下面如何使用CSS实现它。 我不得不删除id=q1

 .f4, .q2 { display: none; } #f4:checked~.f4 { display: block; } #q2:checked~.q2 { display: block; } 
 Question? <br> <input type="radio" name="novecislo" value="Ano1" id="f4"> Yes <br> <input type="radio" name="novecislo" value="Ne1" id="q2" checked> No <div class="q2"> Question? <br> <input type="radio" name="operator" value="tmo"> T-mobile <br> <input type="radio" name="operator" value="o2"> O2 <br> <input type="radio" name="operator" value="vodafone"> Vodafone <br> </div> <div class="f4"> Question? <br> <input type="radio" name="tarif" value="tarif1"> Tarif 1 <br> <input type="radio" name="tarif" value="tarif2"> Tarif 2 <br> <input type="radio" name="tarif" value="tarif3"> Tarif 3 <br> Question? <br> <input type="checkbox" name="akt" value="roaming"> Roaming <br> <input type="checkbox" name="akt" value="pay"> Payments <br> </div> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM