Détails
document.getElementById().value et document.getElementById().checked ne fonctionnent pas pour IE
J'ai essayé d'attribuer une nouvelle valeur à l'entrée cachée et à la case à cocher d'un formulaire de saisie. Cela fonctionne bien dans Firefox mais pas dans IE (j'utilise IE 7). Quelqu'un sait-il ce qui ne va pas dans mon code ?
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;
22
3
Le code que vous avez collé devrait fonctionner... Il doit y avoir quelque chose d'autre que nous ne voyons pas ici.
(Vérifiez ceci) (http://jsbin.com/ayefe). Cela fonctionne bien pour moi sur IE7. Lorsque vous soumettez, vous verrez la variable passée dans l'URL.
Jin Yong - [IE a un problème de pollution de la portée globale][1] avec des références d'objets à tout élément DOM avec un attribut "name" ; ou "id" ; défini au chargement de la page "initial" ;.
Il se peut donc que vous ayez des problèmes dus au nom de votre variable.
Essayez ceci et voyez si cela fonctionne.
Il est possible (dans votre code d'origine) qu'IE tente de définir la valeur de l'entrée comme une référence à cet élément réel (en ignorant l'erreur) mais ne vous laisse pas de nouvelle valeur.
Gardez à l'esprit que dans IE6/IE7, la casse n'a pas d'importance pour nommer les objets. IE considère que "foo" ; "Foo" ; et "FOO" ; sont tous le même objet.
[1] : http://webbugtrack.blogspot.com/2007/09/bug-162-global-namespace-pollution-in.html
Jetez un œil à [jQuery][1], une bibliothèque multi-navigateurs qui vous facilitera grandement la vie.
[1] : http://www.jquery.com/