Jeg prøvde å tilordne en ny verdi til den skjulte inngangen og avkrysningsboksen i et inndataskjema. Det fungerer fint i Firefox, men ikke i IE (jeg bruker IE 7). Er det noen som vet hva som er galt med koden min?
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;
Koden du limte inn burde fungere... Det må være noe annet vi ikke ser her.
Sjekk dette. Fungerer fint for meg på IE7. Når du sender inn, vil du se variabelen som sendes i URL-en.
Jin Yong - IE har et problem med å forurense det globale omfanget med objektreferanser til alle DOM-elementer med et "navn" eller "id"-attributt som er angitt ved den første innlastingen av siden.
Dermed kan du få problemer på grunn av variabelnavnet ditt.
Prøv dette og se om det fungerer.
var someOtherName="abc";
// ^^^^^^^^^^^^^
document.getElementById('msg').value = someOtherName;
document.getElementById('sp_100').checked = true;
Det er mulig (i den opprinnelige koden din) at IE forsøker å sette verdien av inndata til en referanse til det aktuelle elementet (ignorerer feilen), men gir deg ingen ny verdi.
Husk at i IE6/IE7 spiller ikke case noen rolle for navngiving av objekter. IE mener at "foo" og "FOO" er det samme objektet.