Опитах се да задам нова стойност в скрития вход и квадратчето за отметка на формуляр за въвеждане. Работи добре във Firefox, но не и в IE (използвам IE 7). Някой знае ли какво не е наред с моя код?
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;
Кодът, който сте поставили, би трябвало да работи... Трябва да има нещо друго, което не виждаме тук.
Проверете това. Работи ми добре в IE7. Когато изпратите, ще видите променливата, предадена в URL адреса.
Jin Yong - IE има проблем със замърсяването на глобалния обхват с обектни препратки към всички DOM елементи с атрибут "name" или "id", зададен при "първоначалното" зареждане на страницата.
По този начин може да възникнат проблеми поради името на променливата.
Опитайте това и вижте дали работи.
var someOtherName="abc";
// ^^^^^^^^^^^^^
document.getElementById('msg').value = someOtherName;
document.getElementById('sp_100').checked = true;
Съществува вероятност (в оригиналния ви код) IE да се опита да зададе стойността на входа към препратка към този действителен елемент (игнорира грешката), но да ви остави без нова стойност.
Имайте предвид, че в IE6/IE7 случаят няма значение за именуването на обекти. IE смята, че "foo" "Foo" и "FOO" са един и същ обект.
Разгледайте jQuery - библиотека за различни браузъри, която ще улесни живота ви.
var msg = 'abc';
$('#msg').val(msg);
$('#sp_100').attr('checked', 'checked');