Ich habe ein paar Radiobuttons und ein paar Dropdown-Menüs, die zeigen/verbergen, je nachdem welche Radiobutton ausgewählt ist, aber meine ersten drei (von sechs) Radiobuttons aktiviert nicht den JS-Code direkt!Javascript direkt laden
https://jsfiddle.net/spfrh9h8/
prüft diese Geige aus einem visuellen zu bekommen, was Im versucht zu sagen. Während das Radio "Primary" ausgewählt ist, sollte kein Dropdown-Menü sichtbar sein. Es wird nicht angezeigt, wenn es gedrückt wird. Wenn es ausgewählt ist und die Seite neu geladen wird, ist das Dropdown-Menü wieder sichtbar t. Ich bin mir ziemlich sicher, dass dies eine einfache Lösung ist, aber ich konnte es nicht herausfinden.
$(function() {
$("input[type='radio']").change(function() {
if ($(this).val() == 1 && this.checked) {
$("#exerVariNameS").show();
$("#exerVariNameB").hide();
$("#exerVariNameD").hide();
$("#exerVariNameA").hide();
} else if ($(this).val() == 2 && this.checked){
$("#exerVariNameS").hide();
$("#exerVariNameB").show();
$("#exerVariNameD").hide();
$("#exerVariNameA").hide();
} else if ($(this).val() == 3 && this.checked) {
$("#exerVariNameS").hide();
$("#exerVariNameB").hide();
$("#exerVariNameD").show();
$("#exerVariNameA").hide();
}
});
$("input[name='Type']").click(function(){
var value=$(this).val();
switch(value){
case '4':
$("input[name='Exercise']").each(function(){
$(this).closest('div').show();
});
$('#dropdown').hide();
$('#exerVariNameA').hide();
break;
case '5':
$("input[name='Exercise']").each(function(){
$(this).closest('div').show();
});
$('#dropdown').show();
$('#exerVariNameA').hide();
break;
case '6':
$("input[name='Exercise']").each(function(){
$(this).closest('div').hide();
});
$('#dropdown').hide();
$('#exerVariNameA').show();
break;
}
});
//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');
});
$("input[name='Type']").each(function(){
var state=JSON.parse(localStorage.getItem('radio_val'+this.value));
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}));
});
$("input[name='Type']").each(function(){
localStorage.setItem('radio_val'+this.value,JSON.stringify({checked:this.checked}));
});
});
});
Vielleicht können Sie den Klick auf das erste Radio auslösen, wenn die Seite '$ (document) lädt .ready (function() {$ ('input [type = radio]: first-child'). Trigger ('click');}); '. –
Nun, es hat funktioniert, aber es kam mit einigen Komplikationen, das Dropdown, das verschwindet, wenn 'Primary' geklickt wird, sollte nicht verschwinden, wenn 'Secondary' angeklickt wird, und da es sich erinnert, was vorher geklickt wurde Nachladen, die Box ist sichtbar, aber nach dem erneuten Laden wird sie ausgeblendet, da die Primärdatenbank ausgelöst wird. Wie auch immer, ich brauche nicht die ersten drei Radios, um mich an das letzte zu erinnern, das beim Nachladen ausgewählt wurde, aber da ich dieses Javascript nicht selbst geschrieben habe und nicht sehr viel davon verstehe, weiß ich nicht, wie man das macht, während ich noch die letzten drei Radios mache Fortsetzung –
... während die letzten drei Radios immer noch den zuletzt gewählten Wert speichern! Es würde mir gut gehen, wenn Primary jedes Mal neu geladen wird, wenn die Seite neu geladen wird, solange das richtige Zeug gezeigt/versteckt wird, haha. Jede Hilfe wird geschätzt! –