我正在创建一个表单字段,我想在一个简单的show-hide中显示div在单选按钮上。
<form id="basic" name="basic">
<label><input name="formelement" type="radio" value="yes" /> Yes </label>
<label><input name="formelement" type="radio" value="no" /> No </label>
<div id="yes" style="display: none;">
This is the div that displays that shows when 'Yes' is selected.
</div>
<div id="no" style="display: none;">
This is the div that displays that shows when 'No' is selected.
</div>
</form>
我玩了一些我在网上找到的各种各样的javascript,并且取得了很大的成功,因为他们大多数在线设法显示隐藏一个div。选择“否”时隐藏“是”,反之亦然是棘手的部分。如果有人能提供一些非常感谢的帮助!
答案 0 :(得分:3)
只需在头标记之间粘贴这些代码
即可<script type="text/javascript">
window.onload=function(){
var el1 = document.getElementsByName('formelement')[0];
var el2 = document.getElementsByName('formelement')[1];
el1.onchange=function(){
var show=el1.value;
var hide=el2.value;
document.getElementById(show).style.display='block';
document.getElementById(hide).style.display='none';
}
el2.onchange=function(){
var show=el2.value;
var hide=el1.value;
document.getElementById(show).style.display='block';
document.getElementById(hide).style.display='none';
}
}
</script>
答案 1 :(得分:0)
以下假设无线电的值与div的id相同。
function getRadioVal(name){
var oRadio = document.forms[0].elements[name];
for(var i = 0; i < oRadio.length; i++)
if(oRadio[i].checked)
return oRadio[i].value;
return '';
}
//hide both divs..
document.getElementById("yes").style.display = "none";
document.getElementById("no").style.display = "none";
//show only one of them..
document.getElementById(getRadioVal("formelement")) = "block";
当事情变得复杂时,处理没有任何库的javascript是一件痛苦的事情,我会推荐像jQuery这样的库
答案 2 :(得分:0)