2014-07-14 59 views
0

我試圖禁用某些表單字段,如果登錄的用戶沒有編輯字段的權限。我是有工作的罰款,直到我試圖做一些瀏覽器兼容性測試,發現使用jQuery做具有特殊字符的JS元素標籤

$("#id_first_name").attr('disabled', true); 
[etc. fields] 

的IE無法正常工作。我開始通過並取代那些與

id_first_name.disabled = true; 

哪些工作,但我遇到了一個障礙我的幾個字段標有一個 - ,這會導致「ReferenceError:無效的賦值左側」錯誤。

它看起來像在jQuery中工作得很好,因爲標籤是在引號中,但我需要一個不使用jQuery並且不更改這些字段標籤的解決方案。請指教,沒有成功我已經試過:

id_security-email.disabled = true; 
'id_security-email'.disabled = true; 
id_security\-email.disabled = true; 
+0

'的document.getElementById( 'id_security的電子郵件' ).disabled = true;'? – Anton

回答

1

你真的應該被設置爲「禁用」 財產,而不是屬性。

$("#id_security-email").prop("disabled", true); 

或者,你試圖引用全局屬性也可以做這樣的:

window["id_security-email"].disabled = true; 

還有另一個選擇:

document.getElementById("id_security-email").disabled = true; 
+0

...雖然我認爲* jQuery有代碼來避免將「禁用」屬性設置爲字符串「true」... – Pointy

+0

我在引入.prop()之前運行jQuery 1.5。 – SirDeimos

+1

@SirDeimos超過3歲的悲傷。那麼在那種情況下,舊的'.attr()'應該工作;是什麼讓你覺得它不是?在哪個瀏覽器中失敗? – Pointy