2014-01-07 10 views
41

In meinem HTML-Formular habe ich die unten als eine Reihe von Optionsfeldern, je nachdem, welche Optionsfeld Sie wählen, hängt davon ab, was das nächste Formular <fieldset> offenbart, das alles funktioniert. Das Problem ist, dass sie aus irgendeinem Grund wie ein Kontrollkästchen funktionieren und nicht als Optionsfeld. Sie können also alle Optionen auswählen und nicht nur die eine gleichzeitig.HTML-Radio-Tasten ermöglichen mehrere Auswahlen

Kann jemand sehen, wo das in dem folgenden Code falsch geht?

<fieldset> 
     <legend>Please select one of the following</legend> 
     <input type="radio" name="track" id="track" value="track" /><label for="track">Track Submission</label><br /> 
     <input type="radio" name="event" id="event" value="event" /><label for="event">Events and Artist booking</label><br /> 
     <input type="radio" name="message" id="message" value="message" /><label for="message">Message us</label><br /> 
    </fieldset> 

Antwort

83

Sie brauchen alle gleichename Attribut haben.

Die Optionsfelder sind nach dem Attribut name gruppiert. Hier ein Beispiel:

<fieldset> 
    <legend>Please select one of the following</legend> 
    <input type="radio" name="action" id="track" value="track" /><label for="track">Track Submission</label><br /> 
    <input type="radio" name="action" id="event" value="event" /><label for="event">Events and Artist booking</label><br /> 
    <input type="radio" name="action" id="message" value="message" /><label for="message">Message us</label><br /> 
</fieldset> 
+0

+1 Beat mich dazu :) – lhan

+2

Kann nicht glaube, wie offensichtlich das war, denke ich muss nur eine Pause machen. Schön. Werde akzeptieren wenn ich in 9 Minuten Zeit habe. – ThePagan

+0

Gut, ich habe einen jsFiddler für Sie hinzugefügt – Ljubisa

3

Der Name der Eingänge muss derselbe sein, um zur selben Gruppe zu gehören. Dann werden die anderen automatisch abgewählt, wenn auf einen geklickt wird.

1

Um die Radio-Tasten richtig funktioniert, müssen Sie nach seinem Namen gruppiert haben. (Bsp. Name = "Typ")

<fieldset> 
    <legend>Please select one of the following</legend> 
    <input type="radio" name="type" id="track" value="track" /><label for="track">Track Submission</label><br /> 
    <input type="radio" name="type" id="event" value="event" /><label for="event">Events and Artist booking</label><br /> 
    <input type="radio" name="type" id="message" value="message" /><label for="message">Message us</label><br /> 

Es wird gibt den Wert des Optionsfelds geprüft (Ex verfolgen |. Ereignis | Nachricht)

2

Versuchen Sie, diese Art und Weise der Bildung, es Werfen Sie einen Blick eher Phantasie ...

an diesem jsfiddle

Button-Radio

The idea is to choose a the radio as a button instead of the normal circle image. 
+0

Sehr gute und effiziente Lösung !! –

1

Alle Optionsfelder müssen das gleiche Namensattribut haben.

6

Ich habe es auf diese Weise in der Vergangenheit getan, JsFiddle:

CSS:

.radio-option { 
    cursor: pointer; 
    height: 23px; 
    width: 23px; 
    background: url(../images/checkbox2.png) no-repeat 0px 0px; 
} 

.radio-option.click { 
    background: url(../images/checkbox1.png) no-repeat 0px 0px; 
} 

HTML:

<li><div class="radio-option"></div></li> 
<li><div class="radio-option"></div></li> 
<li><div class="radio-option"></div></li> 
<li><div class="radio-option"></div></li> 
<li><div class="radio-option"></div></li> 

jQuery:

<script> 
    $(document).ready(function() { 
     $('.radio-option').click(function() { 
      $(this).not(this).removeClass('click'); 
      $(this).toggleClass("click"); 
     }); 
    }); 
</script> 
+0

Ich mag diesen Ansatz, bedeutet, dass Sie mehr Optionen für die Anpassung erhalten, wie das Kontrollkästchen aussehen würde, hätten Sie dann ein verstecktes Eingabefeld, um das Ergebnis in einem Formular aufzuzeichnen, oder würden Sie diese Informationen rein durch JS sammeln? – ThePagan

+0

Danke, und ich nehme an, Sie könnten es so oder so machen, @ThePagan. Ich habe bemerkt, dass ich zwei verschiedene Bilder habe ... nicht sicher, warum ich das noch nicht korrigiert habe. Sollte ein Sprite mit einer Hintergrundpositionsänderung sein, sonst könnte es Bildladungsartefakte auf dem Handy geben. –

Verwandte Themen