2012-01-18 100 views
2

我有声明$("#myDiv").attr("disabled","disabled"); 我认为一旦禁用“父”容器,其中的所有元素都将被禁用。实际上我看到的是,该文本框看起来像禁用,“删除”不起作用,但我可以在那里输入。在同一个div内的复选框,确实看起来是禁用的,我无法检查/取消选中它。我不确定100%,但我认为我已经以这种方式使用禁用,并且按照我的预期工作(文本框不可打印)。所以我想知道如果我需要明确地设置文本框禁用或者其他一些CSS打破了我的期望。禁用div中的元素

UPDATE: 我知道如何设置明确禁用元素,我需要,我只是不想TOT做到这一点,就是我要问,如果它的唯一方法来禁用它,或文本框可以精确地工作作为复选框(没有明确禁用它),只是一些CSS打破了这种行为。

回答

5

据我所知,这样做不是跨浏览器友好的,也不是有效的标记。最好的办法是做类似

$('#myDiv').find('input,textarea,select').attr("disabled", true); 

这应该找到专区内的所有表单元素和应用TEH禁用标志直接

编辑:甚至只是

$('input,textarea,select', '#myDiv').attr("disabled", true); 
+1

或强制t $(“#myDiv *”)。attr(“disabled”,“disabled”); – giker 2012-01-18 12:54:37

+0

@Lee,thx,但我知道如何明确地设置它,我在问什么是禁用它的唯一方法,或者文本框可以像复选框一样工作,只是一些CSS会打破这种行为。 – 2012-01-18 12:55:10

+0

实际上'$('#myDiv')。find(':input')...'似乎是最好的方法。 – kapa 2012-01-18 12:56:16

1

可以使用:input选择:

$("#myDiv :input").attr("disabled", true);