2010-11-09 29 views
20

Mam następujące HTML:JQuery: uzyskać wartość przycisk radiowy

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, aby uzyskać wybraną opcję

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

Dlaczego nie kod powyżej pracy przy ładowaniu strony, ZANIM użytkownik wybrał przycisk radiowy? To dziwne, ponieważ powyższy kod działa po wybraniu przez użytkownika przycisku radiowego.

Wydaje mi się, że mam ustawić domyślny radiową wartość przycisk, aby być 0, ale jeśli

znaczenie, jeśli zostanie wybrana wartość przycisk radiowy, powrót wybraną wartość - w przeciwnym razie zwraca 0 (gdy nie wartość została wybrana)

+0

Czy masz kod wewnątrz '$ (document) .ready()'? – mway

+2

@StaceyH Po raz czwarty zadałeś to pytanie. Edytuj poprzednie pytanie, jeśli chcesz je wyjaśnić. – lonesomeday

+0

możliwy duplikat [JQuery: Jak ustalić, czy został wybrany przycisk radiowy?] (Http://stackoverflow.com/questions/4139165/jquery-how-to-determine-if-a-radio-button-has- został wybrany) – lonesomeday

Odpowiedz

8

Radio posiada atrybut checked, nie 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

używasz niewłaściwy atrybut. W przypadku przycisków radiowych należy użyć atrybutu checked, a nie atrybutu selected.

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

lub po prostu:

<input type="radio" checked> 
+0

Co powinienem zmienić? – StaceyH

+4

@jnpcl O człowieku, to znaczy. Ale zabawne. –

+0

@StaceyH, powinieneś zrobić tak, jak sugeruje @ Šime, i zmienić 'selected' na' checked'. @ jnclcl, może trochę zbyt ostry; Nie sądzę, że @StaceyH jest * celowo * tępy. –

19

Najpierw popraw atrybutu sprawdzane i usunąć wybrany atrybut, który jest zły, a następnie użyć następującego kodu. t otrzyma wybraną wartość przycisku radiowego po kliknięciu przycisku. ex do listy

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