2012-05-10 52 views
0

這裏是我的代碼 -禁用下拉列表

var obj = $('[id$=ddlInsert4]') 
obj.disable = true; 

obj是一個下拉列表,但禁用呼叫不會禁用下拉列表。

alert(obj.val()) //this returns the correct value 

由於我的警報正在返回正確的值,我知道我的jQuery語法是正確的。 我錯過了什麼?

回答

2

obj是一個jQuery對象,而不是DOM元素。你需要做$(obj).prop('disabled', true);。或者更好的是,如果你不需要其他地方obj變量,只是做:

$('[id$=ddlInsert4]').prop('disabled', true) 

要與本地的DOM元素進行交互,你可以做[0](或.get(0))。然後,你可以這樣做:

obj[0].disabled = true; 

(注意,該酒店是disableddisable

注:$('[id$=ddlInsert4]')可以返回多個元素,[0]將剛剛得到的第一個。如果有不止一個,你需要循環所有這些。儘管如此,我建議使用jQuery .prop方法,因爲它會遍歷所有元素。

5

嘗試使用.prop像下面,

$('[id$=ddlInsert4]').prop('disabled', true); 

可以使用jQuery .prop功能類似於上面

$('[id$=ddlInsert4]')返回一個jquery對象(選擇器總是返回jQuery對象的陣列),這樣你不能設置像這樣的jQuery對象的DOM屬性..

您需要迭代循環並設置屬性ex:$('[id$=ddlInsert4]')[i].disabled = true其中i是索引。