2016-11-29 10 views
4

Ich habe 3 Radiobuttons mit der Bezeichnung 'Squat', 'Benchpress' und 'Deadlift', die jeweils ein zugehöriges Dropdown-Menü anzeigen und ausblenden (ich habe 3 Dropdown-Listen, aber nur jeweils eins angezeigt) verschiedene Daten)Javascript Einblenden/Ausblenden auf Radiobutton

Obwohl jetzt habe ich 3 Radiobuttons, genannt "Primary", "Secondary" und "Assistance" hinzugefügt. Jetzt, wenn primäre & Unterstützung Radiobutton ausgewählt ist, ich wayy keine Dropdown, um überhaupt sichtbar zu sein, nur wenn Secondary ausgewählt ist. Und wenn Secondary ausgewählt ist, sollte es nur eins sein, so wie es momentan ist! Ich kann es einfach nicht zur Arbeit bringen.

Ich schließe diese Geige ein, damit Sie eine Sicht bekommen und sehen, was ich meine!

$(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/

Bitte fragen, ob ich schlecht erklärt!

+0

statt Hervorhebung eine sinnlose '@' als Code, warum Sie nicht tun, was Sie gefragt haben, als Sie die BIG RED sah WARNUNG, wenn Sie mit jsFiddle verbunden sind und ein [mcve] in Ihrer Frage hinzufügen? – j08691

+0

Nun, jetzt, wenn Sie es sagen. Zuerst fühlte ich mich, als wäre es ein Duplikat, das sowieso gelesen werden würde! –

Antwort

1

Alles, was Sie brauchen, ist ein click Event-Handler zu Radio-Buttons mit name="Type" auslösen.

ist hier Lösung:

$("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; 
     } 
}); 

hier ein arbeitet solution

+0

Vielen Dank! Es war nicht so, wie ich es meinte, aber ich konnte es lösen. Es blieb jedoch ein kleines Problem übrig! Ich möchte, dass die ersten 3 Radiobuttons auch daran erinnern, welches zuletzt verwendet wurde, wie die zweite Reihe von 3 Radiobuttons! Und so dass beim ersten Öffnen immer eine ausgewählt und nicht leer ist, wenn das klappt? https://jsfiddle.net/o7m0d4uu/15/ Dies sind die Updates, die ich gemacht habe. Ich würde jede Hilfe sehr schätzen! –

+0

@PontusSvedberg, Hier ist die Lösung: https://jsfiddle.net/o7m0d4uu/16/ –

+0

Wow das ist fantastisch! Vielen Dank!!! Unglaublich –

Verwandte Themen