2011-01-13 7 views
25

Z tego, co udało mi się zebrać, aby można było zaznaczyć etykietę klikalnego przycisku radiowego, należy przypisać tę samą wartość atrybutu "nazwa" obu elementom.Grupy radiowe z klikalną etykietą

Problem polegający na tym, że masz więcej niż jeden przycisk opcji, powiedz "tak lub nie". Aby dotrzeć do miejsca, w którym klikniesz jeden, druga blokada jest taka, że ​​oba atrybuty "name" muszą mieć tę samą wartość.

Czy można zrobić jedno i drugie?

<label for="no">No</label> 
<input type="radio" name="no" value="no" /> 

<label for="yes">Yes</label> 
<input type="radio" name="yes" value="yes" /> 

Odpowiedz

44

id (nie nazwać) atrybut powinny być określane przez atrybut etykiety for. Powinno być tak: http://jsfiddle.net/zzsSw/

<label for="no">No</label> 
<input type="radio" name="mygroup" id="no" value="no" /> 

<label for="yes">Yes</label> 
<input type="radio" name="mygroup" id="yes" value="yes" /> 
+1

sens. Teraz mogę po prostu przypisać poprawną nazwę dla obu elementów? http://jsfiddle.net/zzsSw/1/ –

37

Można również napisać etykiet bez identyfikatorów:

<label> 
    <input type="radio" name="mygroup" /> 
    My clickable caption 
</label> 

lub checkbox

<label> 
    <input type="checkbox" name="mygroup[]" /> 
    My clickable caption 
</label> 
+5

Ta odpowiedź jest lepsza niż moja. – Ish

+0

Nie zgadzam się, że jest lepiej. Jeśli musisz obsługiwać stary IE, elementy o nazwach można znaleźć za pomocą 'document.getElementById', które przeszuka zarówno identyfikatory, jak i nazwy. Zobacz http://msdn.microsoft.com/en-us/library/ie/ms536437(v=vs.85).aspx w sekcji Uwagi. Jeśli IE7 lub poniżej jest nadal celem dla ciebie (nawet jeśli masz wsparcie IE10, ale w trybie standardowym IE7 itd.), Powinieneś naprawdę umieszczać nazwy i identyfikatory tych elementów. –

+0

Napisałem wiele takich haseł i teraz tego żałuję. Nie widzę żadnego oczywistego sposobu na programowe przeniesienie napisu np. układ tabeli. – Cuadue

Powiązane problemy