2009-10-24 8 views
12

Mam formularz z wieloma grupami radiotelefonów. Każde radio ma unikalny identyfikator i ma taką samą nazwę jak inne w swojej grupie. Strona sprawdza się jako przejściowa XHTML.Firefox Radio Button Weirdness

Testowany w IE6 & 7, Opera, Safari i Chrome działa dokładnie tak, jak myślałbyś, używając klawiatury lub myszy.

W FireFox szaleje. Pojedyncze kliknięcie dowolnego radia w grupie ustawia pierwsze radio w grupie zaznaczone. Podwójne kliknięcie radia zazwyczaj wybiera je. Ktoś to widział?

grupa Próbka wygląda następująco:

<input type="radio" name="upAndDown_1" id="upAndDown_11" value="Y" /> Y <br /> 
<input type="radio" name="upAndDown_1" id="upAndDown_12" value="N" checked="checked" /> N<br /> 
<input type="radio" name="upAndDown_1" id="upAndDown_13" value="NA" /> NA 

phonmomenon można przetestować tutaj: http://www.nolaflash.com/stackoverflow/firefox_and_radios.html

Wszelkie porady mile widziane.

Odpowiedz

14

Doh! Mój projektant miał jeden tag zawijający każdą grupę radia. Wyeliminowanie tagu etykiety naprawia dziwaczność FireFoxa.

+1

Tak, wejście wewnątrz etykiety jest uważany za kojarzenie etykietę z wejściem, jakby 'for =„...”' zostały wykorzystane do ich skojarzyć. Jest to część standardu HTML, choć nie jest obsługiwana przez IE. – bobince

+1

Zachowanie się dzieje, gdy masz ten sam identyfikator dla radia, jeśli przypiszesz tę samą nazwę i inny identyfikator, którego nie będziesz mieć. –

5

To rzeczywiście otaczający tag <label>, który powoduje problem z Firefoksem (mimo że jest prawidłowy html). To powinno rade:

<input type="radio" name="upAndDown_2" id="upAndDown_21" value="Y"/><label for="upAndDown_21">Y</label><br/> 
<input type="radio" name="upAndDown_2" id="upAndDown_22" value="N"/><label for="upAndDown_22">N</label><br/> 
<input type="radio" name="upAndDown_2" id="upAndDown_23" value="NA" checked="checked"/><label for="upAndDown_22">NA</label>