2010-11-09 24 views
20

Ich habe folgende HTML:JQuery: get Wert Radiobutton

HTML:

<input type="radio" name="abc" value="0" selected="selected" style="display:none" /> 
<input type="radio" name="abc" value="1" />1+ 
<input type="radio" name="abc" value="2" />2+ 
<input type="radio" name="abc" value="3" />3+ 

JQuery die ausgewählte Radiobutton

$('input:radio[name=abc]:checked').val(); 

Warum funktioniert der Code über Arbeit zu bekommen beim Laden der Seite, BEVOR ein Benutzer ein Optionsfeld ausgewählt hat? Es ist merkwürdig, weil der obige Code funktioniert, nachdem ein Benutzer ein Optionsfeld ausgewählt hat.

Es scheint mir, dass ich den Standard-Optionsfeld Wert eingestellt habe 0 zu sein, aber wenn man

Bedeutung, wenn der Wert Optionsfeld ausgewählt wird, um den ausgewählten Wert zurück - andernfalls 0 zurück (wenn keine Wert ausgewählt wurde)

+0

Haben Sie den Code in '$ (document) .ready()'? – mway

+2

@StaceyH Dies ist das vierte Mal, dass Sie diese Frage gestellt haben. Bitte bearbeiten Sie eine vorherige Frage, wenn Sie sie klären müssen. – lonesomeday

+0

mögliches Duplikat von [JQuery: Wie ermittelt man, ob ein Optionsfeld ausgewählt wurde?] (Http://stackoverflow.com/questions/4139165/jquery-how-to-determine-if-a-radio-button-has- wurde ausgewählt) – lonesomeday

Antwort

8

-Radio hat das Attribut checked, nicht selected

<input type="radio" name="abc" value="0" checked="checked" style="display:none" /> 
<input type="radio" name="abc" value="1" />1+ 
<input type="radio" name="abc" value="2" />2+ 
<input type="radio" name="abc" value="3" />3+ 
23

Sie sind das falsche Attribut. Für Optionsfelder müssen Sie das Attribut checked und nicht das Attribut selected verwenden.

<input type="radio" checked="checked"> 

oder gerade:

<input type="radio" checked> 
+0

Also, was soll ich ändern? – StaceyH

+4

@jnpcl Oh Mann, das ist gemein. Aber lustig. –

+0

@StaceyH, Sie sollten tun, wie @ Šime schlägt, und ändern Sie "ausgewählt" zu "überprüft". @jnpcl, vielleicht ein bisschen zu hart; Ich glaube nicht, dass @ StacyyH * absichtlich * stumpf ist. –

19

Zuerst das Attribut geprüft korrigieren und ausgewähltes Attribut entfernen, das falsch ist und dann den folgenden Code verwenden. t erhält den ausgewählten Wert des Radiobuttons bei Tastendruck. ex für Liste

$("#btn").click(function() { 
     $('input[type="radio"]:checked').val(); 
     });