2009-10-01 10 views

risposta

7

Web Bug Track:

L'evento onchange può essere attaccato (linea o come un gestore di eventi) a qualsiasi elemento del modulo. Si attiva ogni volta che cambia il valore del campo modulo. Sfortunatamente, il comportamento è un po 'strano in IE, in quanto per una casella di controllo, o un campo pulsante radio, l'evento non si attiva quando è previsto (giusto quando si fa clic sull'opzione che si desidera scegliere), ma invece si attiva solo quando fai clic altrove nella pagina/modulo o se chiami esplicitamente blur(); sul campo.

E il lavoro intorno suggerita è:

<input type="radio" name="foo" value="Green" onclick="alert(this.value);"/>Green 
<input type="radio" name="foo" value="Blue" onclick="alert(this.value);"/>Blue 
1

problema con la soluzione di Lucas è che questo si innescherà anche se si sceglie di nuovo la stessa opzione.

La soluzione che ho trovato di lavoro era aggiungere onclick = "this.blur();" al tag del pulsante radio che lo forza a innescare l'onchange solo se è cambiato.

<input type="radio" name="foo" value="Green" onclick="alert(this.value);" onclick="this.onBlur();" />Green 
<input type="radio" name="foo" value="Red" onclick="alert(this.value);" onclick="this.onBlur();" />Red 

Spero che questo aiuti.

Problemi correlati