Ho provato ad assegnare un nuovo valore nell'input nascosto e nella casella di controllo di un modulo di input. Funziona bene in Firefox ma non in IE (sto usando IE 7). Qualcuno sa cosa c'è di sbagliato nel mio codice?
HTML:
<input type="hidden" id="msg" name="msg" value="" style="display:none"/>
<input type="checkbox" name="sp" value="100" id="sp_100">
Javascript:
var Msg="abc";
document.getElementById('msg').value = Msg;
document.getElementById('sp_100').checked = true;
Il codice che hai incollato dovrebbe funzionare... Ci deve essere qualcos'altro che non vediamo qui.
Controlla questo. Funziona bene per me su IE7. Quando invii vedrai la variabile passata nell'URL.
Jin Yong - IE ha un problema con l'inquinamento dell'ambito globale con riferimenti a qualsiasi elemento DOM con un "nome" o "id" attributo impostato sul "carico iniziale" della pagina.
Quindi potreste avere problemi a causa del vostro nome variabile.
Prova questo e vedi se funziona.
var someOtherName="abc";
// ^^^^^^^^^^^^^
document.getElementById('msg').value = someOtherName;
document.getElementById('sp_100').checked = true;
C'è una possibilità (nel tuo codice originale) che IE tenti di impostare il valore dell'input su un riferimento a quell'elemento attuale (ignora l'errore) ma ti lascia senza un nuovo valore.
Tieni presente che in IE6/IE7 il caso non ha importanza per la denominazione degli oggetti. IE crede che "foo" "Foo" e "FOO" siano tutti lo stesso oggetto.