簡體   English   中英

document.getElementById()。value和document.getElementById()。選中不適用於IE

[英]document.getElementById().value and document.getElementById().checked not working for 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;

對於非分組元素,name和id應該相同。 在這種情況下,您將名稱命名為“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/

您粘貼的代碼應該有效......必須有一些我們在這里看不到的東西。

看看這個 在IE7上為我工作很好。 提交時,您將看到URL中傳遞的變量。

Jin Yong - IE在使用“初始”頁面加載上設置了“name”或“id”屬性的任何DOM元素的對象引用時污染全局范圍存在問題

因此,由於您的變量名稱,您可能會遇到問題。

試試這個,看它是否有效。

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');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM