He intentado asignar un nuevo valor a la entrada oculta y a la casilla de verificación de un formulario de entrada. Funciona bien en Firefox pero no en IE (estoy usando IE 7). ¿Alguien sabe qué está mal en mi código?
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;
El código que has pegado debería funcionar... Debe haber algo más que no estamos viendo aquí.
Comprueba esto. A mí me funciona bien en IE7. Cuando envíe verá la variable pasada en la URL.
Jin Yong - IE tiene un problema de contaminación del ámbito global con referencias a objetos de cualquier elemento del DOM con un atributo "name" o "id" establecido en la carga "inicial" de la página.
Por lo tanto, puede tener problemas debido a su nombre de variable.
Pruebe esto y vea si funciona.
var someOtherName="abc";
// ^^^^^^^^^^^^^
document.getElementById('msg').value = someOtherName;
document.getElementById('sp_100').checked = true;
Existe la posibilidad (en tu código original) de que IE intente establecer el valor de la entrada a una referencia a ese elemento real (ignora el error) pero te deja sin valor nuevo.
Tenga en cuenta que en IE6/IE7 el caso no importa para nombrar objetos. IE cree que "foo" "Foo" y "FOO" son todos el mismo objeto.