2016-11-29 13 views
4

「スクワット」、「ベンチプレス」、「デッドリフト」という3つのラジオボタンがあり、関連するドロップダウンメニューを表示したり非表示にしたりします(3回のドロップダウンがありますが、ラジオボタンで表示/非表示

ここでは、「プライマリ」、「セカンダリ」、「アシスタンス」という3つのラジオボタンを追加しました。現在、プライマリ&アシスタントラジオボタンが選択されている場合は、セカンダリが選択されている場合に限り、すべてのドロップダウンが表示されることはありません。セカンダリが選択されているときは、現時点で表示されているものに限ります。私はちょうどそれを働かせるように見えない。

私はこのフィドルが含まれているので、あなたはビジュアルを得て、私が何を意味するのか見ることができます!

$(function() { 
    $("#datepicker").datepicker({ dateFormat: "yy-mm/dd" }).val() 
}); 

//Script for hiding dropdown menus and showing the one connected 
//to the right exercise based on which radiobutton is selected. 
$(function() { 
    $("input[type='radio']").change(function() { 
    if ($(this).val() == 1 && this.checked) { 
     $("#exerVariNameS").show(); 
     $("#exerVariNameB").hide(); 
     $("#exerVariNameD").hide(); 
    } else if ($(this).val() == 2 && this.checked){ 
     $("#exerVariNameS").hide(); 
     $("#exerVariNameB").show(); 
     $("#exerVariNameD").hide(); 
    } else if ($(this).val() == 3 && this.checked) { 
     $("#exerVariNameS").hide(); 
     $("#exerVariNameB").hide(); 
     $("#exerVariNameD").show(); 
    } 
    }); 
    //Remember which radiobutton was last clicked and keeps it that way 
    //after a page refresh or form post. 
    $('input[type=radio]').each(function() { 
    var state = JSON.parse(localStorage.getItem('radio_' + this.id)); 
    if (state) this.checked = state.checked; 
    $(this).trigger('change'); 
    });   
    $(window).bind('unload', function() { 
    $('input[type=radio]').each(function() { 
     localStorage.setItem('radio_' + this.id, JSON.stringify({checked: this.checked})); 
    }); 
    }); 
}); 

https://jsfiddle.net/o7m0d4uu/4/

私はひどく説明している場合はお問い合わせください!

+0

、ありますjsFiddleにリンクして質問に[mcve]を追加したときの警告? – j08691

+0

さて、あなたがそれを言う時。私はちょうどそれがとにかく読まれることになる重複であるように感じました! –

答えて

1

イベントハンドラをラジオボタンname="Type"でトリガーするだけです。ここで

は解決策である:ここでは

$("input[name='Type']").click(function(){ 
     var value=$(this).val(); 
     switch(value){ 
      case '4': 
       $("input[name='Exercise']").each(function(){ 
       $(this).closest('div').hide(); 
       }); 
       $('#dropdown').hide(); 
       break; 
      case '5': 
       $("input[name='Exercise']").each(function(){ 
        $(this).closest('div').show(); 
       }); 
       $('#dropdown').show(); 
       break; 
      case '6': 
       $("input[name='Exercise']").each(function(){ 
       $(this).closest('div').hide(); 
       }); 
       $('#dropdown').hide(); 
       break; 
     } 
}); 

はあなたがBIG REDを見たとき、あなたが求めていた何をしない理由の代わりにコードとして `@`無意味を強調する作業solution

+0

ありがとうございます!それは私が意味した通りではありませんでしたが、私はそれを解決することができました。しかし、1つの小さな問題が残っていた!私は最初の3つのラジオボタンが、3つのラジオボタンの2番目の行のように最近使用されたものを覚えておきたいです!それが働くのであれば、あなたが最初にそれを開いたときに常に選択され、空でないものがあるように? https://jsfiddle.net/o7m0d4uu/15/ これは私が行った更新です。私は大いに助けていただければ幸いです! –

+0

@PontusSvedberg、ここに解決策があります:https://jsfiddle.net/o7m0d4uu/16/ –

+0

すごくすばらしい!巨大な感謝!!!信じられないほど –