[英]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.