令人沮丧的简单Javascript帮助需要

时间:2012-07-05 04:04:34

标签: javascript forms show-hide

我正在创建一个表单字段,我想在一个简单的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。选择“否”时隐藏“是”,反之亦然是棘手的部分。如果有人能提供一些非常感谢的帮助!

3 个答案:

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

DEMO.

答案 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)

这就是你想要的

How can I check whether a radio button is selected with JavaScript?

分配onclick事件,你很高兴。