2012-05-10 100 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是索引。