Wenn Radio-Button Ausgewählt ist, Zeigen Div - 8 Radio Buttons / 8 Divs - Kann dies vereinfacht werden?
Im Grunde, ich will 8 radio-buttons. Und wenn ein radio-button ausgewählt ist, dann wird ein div ist unten dargestellt. Wenn eine andere Schaltfläche ausgewählt wird, einem anderen div angezeigt wird. Nur ein div zu einem Zeitpunkt angezeigt und wenn keine Schaltfläche ausgewählt ist (zunächst), dann werden keine divs angezeigt.
Dies ist mein HTML, das ist ziemlich standard, ich werde nicht versuchen, das zu verbessern, was ich brauche.
<form id='group'>
<label><input type="radio" name="group1" class="sim-micro-btn"/></label>
<label><input type="radio" name="group1" class="sim-mini-btn"/></label>
<label><input type="radio" name="group1" class="sim-maxi-btn"/></label>
<label><input type="radio" name="group1" class="sim-mega-btn"/></label>
<label><input type="radio" name="group1" class="phone-smart-micro-btn"/></label>
<label><input type="radio" name="group1" class="phone-smart-mini-btn"/></label>
<label><input type="radio" name="group1" class="phone-smart-btn"/></label>
<label><input type="radio" name="group1" class="phone-smart-maxi-btn"/></label>
</form>
<div class="billpay-internet-add-ons">
<div class="sim-micro-desktop">sim-micro</div>
<div class="sim-mini-desktop">sim-mini</div>
<div class="sim-maxi-desktop">sim-maxi</div>
<div class="sim-mega-desktop">sim-mega</div>
<div class="phone-smart-micro-desktop">phone-smart-micro</div>
<div class="phone-smart-mini-desktop">phone-smart-mini</div>
<div class="phone-smart-desktop">phone-smart</div>
<div class="phone-smart-maxi-desktop">phone-smart-maxi</div>
</div>
Aber das ist mein script und es scheint ziemlich hektisch und ich wundere mich, bevor ich auf gibt es einen Weg, das zu tun dieses ein bisschen einfacher?
$(document).ready(function(){
$('.sim-micro-desktop').hide();
$('.sim-mini-desktop').hide();
$('.sim-maxi-desktop').hide();
$('.sim-mega-desktop').hide();
$('.phone-smart-micro-desktop').hide();
$('.phone-smart-mini-desktop').hide();
$('.phone-smart-desktop').hide();
$('.phone-smart-maxi-desktop').hide();
$('form#group').click(function(){
if($('.sim-micro-btn').is(":checked")){
$('.sim-micro-desktop').show();
} else {
$('.sim-micro-desktop').hide();
}
if($('.sim-mini-btn').is(":checked")){
$('.sim-mini-desktop').show();
} else {
$('.sim-mini-desktop').hide();
}
if($('.sim-maxi-btn').is(":checked")){
$('.sim-maxi-desktop').show();
} else {
$('.sim-maxi-desktop').hide();
}
if($('.sim-mega-btn').is(":checked")){
$('.sim-mega-desktop').show();
} else {
$('.sim-mega-desktop').hide();
}
if($('.phone-smart-micro-btn').is(":checked")){
$('.phone-smart-micro-desktop').show();
} else {
$('.phone-smart-micro-desktop').hide();
}
if($('.phone-smart-mini-btn').is(":checked")){
$('.phone-smart-mini-desktop').show();
} else {
$('.phone-smart-mini-desktop').hide();
}
if($('.phone-smart-btn').is(":checked")){
$('.phone-smart-desktop').show();
} else {
$('.phone-smart-desktop').hide();
}
if($('.phone-smart-maxi-btn').is(":checked")){
$('.phone-smart-maxi-desktop').show();
} else {
$('.phone-smart-maxi-desktop').hide();
}
});
});
InformationsquelleAutor 50dollanote | 2013-09-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstens gemeinsames Klassen sowohl auf der
radio
Tasten und diediv
Elemente, die zeigen Inhalte. In meinem Beispiel habe ich verwendettrigger
undcontent
beziehungsweise. Dann fügen Sie einedata
- Attribut, um das radio zu identifizieren, welches div soll gezeigt werden, auf klicken Sie.Gekürzt Beispiel:
Dann brauchen Sie nur 1 Klick-Prozedur wie diese:
Können Sie auch dann verwenden CSS zum ausblenden der
div
Elemente ohne jQuery - styling sollte immer durchgeführt werden, in CSS sowieso, da es eine viel bessere Trennung von Bedenken.Beispiel Geige
Mann, Wenn ich einfügen-Werte für alle einzelnen verborgenen Eingänge (ich bin verändert, div, input type text), werden diese Werte an die Datenbank? Ich möchte, wenn Sie ausgeblendet sind, dann werden die Werte nicht an die Datenbank. Können Sie mir ein wenig Aufklärung. Danke.
Wenn Sie nicht möchten, dass der Wert eines
input
an den server gesendet mit den anderen Formular-POST-Daten, legen Sie diedisabled="disabled"
auf Ihr Eigentum.InformationsquelleAutor Rory McCrossan
Können Sie verstecken die
div
- Elemente mit CSS:Dann können Sie die
className
destarget
um zu bestimmen, welchediv
zu zeigen, versteckt allesibling
Elemente:Hier ist ein Turnschuh
InformationsquelleAutor billyonecan
html5 data-Attribut)(ich.e-Daten-mappingclass ), das auf entsprechende div die Sie brauchen, zu zeigen. hinzufügen gleichen Klasse alle radio-Taste(ie radioClass).
HTML
JS
InformationsquelleAutor bipen
Sie könnte verwenden von Auswahlbereichen, um reduzieren Sie die Anzahl der code-Zeilen hier.
Gekürzt werden kann:
Diese verwendet das parent-element zu gruppieren die Elemente, die Sie ausblenden möchten, anstatt die Wiederholung der Anforderung für jeder man.
Ebenso können Sie Ihre Namenskonvention zum anzeigen der Elemente auf die Elemente ein-und ausblenden - hier ist die voll funktionsfähige Beispiel:
Diesem Beispiel basiert ausschließlich auf den HTML-Code ohne irgendwelche änderungen. Sehen Sie, hier zu arbeiten.
Könnte man vereinfachen Sie weiter, wenn Sie nicht brauchen, um eine Transformation der Namen. Man könnte ein data-Attribut, anstelle der änderung des Klassennamen, dies zu tun.
InformationsquelleAutor Fenton
http://jsfiddle.net/KaF77/2/
InformationsquelleAutor
Ich es vereinfacht einige vier. Im Grunde kannst du schauen welchen index das radio geklickt hat und dann ein div mit dem gleichen index. Also ist die position der divs hat, um die radios.
Ihre HTML ist die gleiche wie vorher.
Ihre CSS:
Alle Ihre Javascript:
jsFiddle Demo: http://jsfiddle.net/cfSXY/
InformationsquelleAutor Oskar Hane
Erstens, Sie haben alles, was standardmäßig ausgeblendet (mit Ausnahme einer form vielleicht) mit CSS, das entledigt diese:
Dieser hat eine negative Implikation für Benutzer ohne javascript, wenn Sie besorgt sind - Sie werden nie in der Lage, um zu sehen, die anderen Formen.
Nächsten, nur ein radio kann geprüft werden, so finden Sie einfach heraus, welches es ist mit:
Aber warum sollte man das tun, so haben Sie die radios haben einen click-handler, mehr wie:
Jetzt haben Sie die Wahl, wie Sie link zu Ihrem radio-buttons, um die verschiedenen Formen eine Möglichkeit könnte sein, verwenden Sie das data-Attribut, so definieren Sie Ihre radios so:
Die Sie zugreifen können, etwa so:
Alles was Sie jetzt tun müssen, ist, blendet die div-war das schon zeigen, aber das kann erreicht werden mit einer ähnlichen Nutzung des data-Attribut oder über die
:visible
selector.InformationsquelleAutor JohnMark13