0

我正在制作一个表单字段,我想做一个简单的显示隐藏以在单选按钮上显示 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。选择“否”时隐藏“是”,反之亦然是棘手的部分。如果有人可以提供一些帮助,将不胜感激!

4

3 回答 3

3

只需在 head 标签之间粘贴这些代码

<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>

演示。

于 2012-07-05T04:28:46.117 回答
0

下面假设 radio 的值与 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等库

于 2012-07-05T04:10:24.553 回答
0

这就是你想要的

如何检查是否使用 JavaScript 选择了单选按钮?

分配 onclick 事件,您就可以开始了。

于 2012-07-05T04:10:43.663 回答