1

ラジオボタンのグループがあり、そのグループの1つのボタンがチェックされている場合はdivが表示され、ラジオボタンのチェックを外すとdivが消えます。

しかし、ボックスをチェックするとdivが表示され、別のボックスをチェックすると最初にチェックされたラジオボタンが自動的にチェック解除され、最初に表示された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/

4

3 に答える 3

1

http://jsfiddle.net/EGMdK/121/

修正されたコード、それが役立つことを願っていますか?

于 2012-09-16T11:06:54.690 に答える
0

私はあなたのコードを少し要約しました:

$('.layergruppe1, .layergruppe2').hide();

$('input[name="group1"]').change(
    function(){
        $('div[class^="layergruppe"]').hide();
        $('div.layer' + this.id).show();
    });

JS フィドルのデモ

参考文献:

于 2012-09-16T11:09:49.917 に答える
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/

于 2012-09-16T11:30:53.010 に答える