禁用下拉列表

时间:2012-05-10 21:25:15

标签: javascript jquery

这是我的代码 -

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

obj是一个下拉列表,但禁用调用不会禁用下拉列表。

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

由于我的警报返回正确的值,我知道我的jQuery语法是正确的。 我错过了什么?

2 个答案:

答案 0 :(得分:5)

尝试使用下面的.prop

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

您可以使用上面的jQuery .prop函数

$('[id$=ddlInsert4]')返回一个jquery对象(选择器总是返回jQuery对象的数组)所以你不能像那样在jQuery对象上设置DOM属性..

您需要循环迭代并设置ex:$('[id$=ddlInsert4]')[i].disabled = true属性,其中i是索引。

答案 1 :(得分:2)

obj是一个jQuery对象,而不是DOM元素。你需要做$(obj).prop('disabled', true);。或者更好的是,如果您在其他地方不需要obj变量,只需执行:

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

要与原生DOM元素进行交互,您可以执行[0](或.get(0))。然后你可以这样做:

obj[0].disabled = true;

(请注意,该属性为disabled而不是disable

注意:$('[id$=ddlInsert4]')可以返回多个元素,而[0]只会返回第一个元素。如果有多个,你需要遍历所有这些。我建议使用jQuery .prop方法,因为它将循环遍历所有元素。