2009-10-24 27 views
12

Ho un modulo con molti gruppi di radio. Ogni radio ha un ID univoco e ha lo stesso nome degli altri nel suo gruppo. La pagina viene convalidata come transitoria XHTML.Pulsante di Firefox Radio Weirdness

Testato in IE6 & 7, Opera, Safari e Chrome funziona esattamente come si penserebbe dall'ingresso del mouse o della tastiera.

In FireFox impazzisce. Un singolo clic su qualsiasi radio in un gruppo imposta la prima radio nel gruppo selezionato. Di solito un doppio clic su una radio lo seleziona. Qualcuno ha visto questo prima?

campione si presenta così:

<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 

Il phonmomenon può essere testato qui: http://www.nolaflash.com/stackoverflow/firefox_and_radios.html

Qualche consiglio apprezzato.

risposta

14

Doh! Il mio designer aveva un singolo tag che avvolgeva ogni gruppo di radio. Eliminare il tag etichetta risolve la stranezza di FireFox.

+1

Sì, un ingresso all'interno di un'etichetta è considerato come associando l'etichetta con l'ingresso, come se un 'for = "..."' erano stati usati per associarli. Questo fa parte dello standard HTML, sebbene non supportato da IE. – bobince

+1

Il comportamento si verifica quando si ha lo stesso ID per le radio se si assegna lo stesso nome e ID diversi non si avrà questo effetto. –

5

È in effetti il ​​tag <label> che causa il problema di Firefox (sebbene sia un html valido). Questo dovrebbe fare il trucco:

<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> 
Problemi correlati