Подтвердить что ты не робот

Document.getElementById(). value и document.getElementById(). не работает для IE

Я попытался присвоить новое значение скрытому вводу и флажку входной формы. Он отлично работает в 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;
4b9b3361

Ответ 1

Посмотрите jQuery, кросс-браузерную библиотеку, которая сделает вашу жизнь намного легче.

var msg = 'abc';
$('#msg').val(msg);
$('#sp_100').attr('checked', 'checked');

Ответ 2

Для негрупповых элементов имя и идентификатор должны быть одинаковыми. В этом случае вы называете "sp" и id "sp_100". Не делайте этого, сделайте это так:

HTML:

<input type="hidden" id="msg" name="msg" value="" style="display:none"/>
<input type="checkbox" name="sp" value="100" id="sp">

JavaScript:

var Msg="abc";
document.getElementById('msg').value = Msg;
document.getElementById('sp').checked = true;

Подробнее...

посетите: http://www.impressivewebs.com/avoiding-problems-with-javascript-getelementbyid-method-in-internet-explorer-7/

Ответ 3

Код, который вы вставили, должен работать... Здесь должно быть что-то еще.

Проверьте это. Работаю для меня отлично на IE7. При отправке вы увидите переменную, переданную в URL.

Ответ 4

Jin Yong - У IE есть проблема с загрязнением глобальной области с привязкой объектов к любым элементам DOM с атрибут "имя" или "id", заданный на "начальной" загрузке страницы.

Таким образом, у вас могут возникнуть проблемы из-за вашего имени переменной.

Попробуйте это и посмотрите, работает ли он.

var someOtherName="abc";
//  ^^^^^^^^^^^^^
document.getElementById('msg').value = someOtherName;
document.getElementById('sp_100').checked = true;

Есть шанс (в вашем исходном коде), что IE пытается установить значение ввода в ссылку на этот фактический элемент (игнорирует ошибку), но не оставляет вам нового значения.

Имейте в виду, что в случае IE6/IE7 не имеет значения для именования объектов. IE считает, что "foo" "Foo" и "FOO" - это все тот же объект.