如果选中或取消选中组的单选按钮,如何显示或隐藏div?

时间:2012-09-16 09:52:40

标签: jquery html forms radio-group

我有一组radiobuttons,如果检查该组中的一个按钮,则会显示div,如果我取消选中该按钮,则div消失,

但我没有得到它的工作,如果我检查一个框出现div,如果我检查另一个第一个检查的radiobutton将自动取消选中,第一个出现的div将消失,并且2. div出现。

我尝试让代码正常工作。以下是我的HTML代码:

<form>
    <label><input type="radio" name="group1" id="gruppe1"/>Gruppen</label>
    <label><input type="radio" name="group1" id="gruppe2"/>Gruppen 2</label> 
</form>

<div class="layergruppe1">
    <label>Value 1:<input type="number" name="group2" id="value1" value="0" /></label>
    <label>Value 2:<input type="number" name="group2" id="value2" value="0" /></label>
    <label>Value 3:<input type="number" name="group2" id="value3" value="0" /></label>
    <label>Value 4:<input type="number" name="group2" id="value4" value="0" /></label>
</div>

<div class="layergruppe2">
    <label>Value 1:<input type="number" name="group3" id="value1" value="0" /></label>
    <label>Value 2:<input type="number" name="group3" id="value2" value="0" /></label>
    <label>Value 3:<input type="number" name="group3" id="value3" value="0" /></label>
</div>

使用Javascript:

$(document).ready(function(){
    $('.layergruppe1').hide();
    $("#gruppe1").live("click", function(){
        var id = parseInt($(this).val(), 10);
        if($(this).is(":checked")) {
            $('.layergruppe1').show();
        } else {
            $('.layergruppe1').hide();
        }
    });

    $('.layergruppe2').hide();
    $("#gruppe2").live("click", function(){
        var id = parseInt($(this).val(), 10);
        if($(this).is(":checked")) {
            $('.layergruppe2').show();
        } else {
            $('.layergruppe2').hide();
        }
    });
    $('input[type=radio]').click(function(){
        if (this.previous) {
            this.checked = false;
        }
        this.previous = this.checked;
    });
});

JSFiddle:http://jsfiddle.net/EGMdK/87/

1 个答案:

答案 0 :(得分:0)

http://jsfiddle.net/merakli/gAKYr/

$(document).ready(function(){
$('.layergruppe1').hide();
$('.layergruppe2').hide();
    $('input[type=radio]').change(function(e)
                                  {
        if (this.id == 'gruppe1') {
            $('.layergruppe1').show();
            $('.layergruppe2').hide();
        } else if (this.id == 'gruppe2') {
            $('.layergruppe1').hide();
            $('.layergruppe2').show();
        }  
      });
});

其他例子......

http://jsfiddle.net/merakli/EjJqS/

http://jsfiddle.net/merakli/Gu63y/

http://jsfiddle.net/merakli/ftQ8g/

http://jsfiddle.net/merakli/dW4gD/

http://jsfiddle.net/merakli/7wdp5/

http://jsfiddle.net/merakli/7wdp5/

http://jsfiddle.net/merakli/7wdp5/