2009-08-12 146 views
2

我在頁面上有2個chekboxes。每個行內都有一個表格單元格。做一個document.getElementById('chk1_FEAS〜1005')返回元素,但document.getElementById('chk5_STG2〜1005')爲null。爲什麼會發生這種情況? (我在IE 8中測試)。document.getElementById不工作

<input id="chk1_FEAS~1005" value="JobStages###StageCode~JobCode###FEAS~1005" onclick="addRemoveRow(this.value,this.checked)" style="border-width:0px;padding:1px;margin:0px;height:14px;" type="checkbox" /> 

<input id="chk5_STG2~1005" value="JobStages###StageCode~JobCode###STG2~1005" onclick="addRemoveRow(this.value,this.checked)" style="border-width:0px;padding:1px;margin:0px;height:14px;" type="checkbox" /> 
+0

提供一個HTML文檔,在HEAD標記中失敗的JavaScript將有所幫助(如果需要,可以從您的真實代碼創建一個簡單的示例)。 – lance

回答

10

你的ID有無效字符:

ID和名稱標記必須以 字母開頭([ A-Za-z]),並且可能遵循 任何數量的字母,數字 ([0-9]),連字符(「 - 」),下劃線 (「_」),冒號(「:」)和句點 (「。」)。

更多信息here

+2

+1這是唯一正確的迴應 – cletus

+0

這不是問題的例子,雖然你是正確的,那是建議。 –

+0

好吧。但爲什麼第一個工作? – user48408

1
document.getElementById('hk5_STG2~1005') 

應該

document.getElementById('chk5_STG2~1005') 

:-)

0

看你的樣品是一個錯字,第二項是應該的,document.getElementById('chk5_STG2~1005')

另外,我建議去掉〜字符,因爲它是一個id無效。

+0

對不起,這是一個錯字。 document.getElementById('chk5_STG2〜1005')不起作用 – user48408

0

對於它的價值,我有類似的問題在IE8的複選框上使用document.getElementById。嘗試添加此標記到你的頭部分: -

<meta http-equiv="X-UA-Compatible" content="IE=7" /> 

這將迫使IE8到IE7兼容模式。它對我來說是一種解決方法,直到我發現真正的問題。

相關問題