Javascript 禁用div中的元素
我有对账单<代码>$(“#myDiv”).attr(“禁用”、“禁用”)代码> 我认为一旦禁用“父”容器,该容器中的所有元素都将被禁用。事实上,我看到的是,这个文本框看起来像是被禁用的,“删除”在其中不起作用,但我可以在那里键入。选中同一个div中的复选框,看起来真的被禁用了,我无法选中/取消选中它。我不确定是否100%,但我认为我已经使用了禁用这种方式,并且它按照我的预期工作(文本框不可键入)。所以我想知道我是否需要显式地为文本框设置disabled,或者其他一些CSS破坏了我的预期 更新:Javascript 禁用div中的元素,javascript,html,css,Javascript,Html,Css,我有对账单$(“#myDiv”).attr(“禁用”、“禁用”) 我认为一旦禁用“父”容器,该容器中的所有元素都将被禁用。事实上,我看到的是,这个文本框看起来像是被禁用的,“删除”在其中不起作用,但我可以在那里键入。选中同一个div中的复选框,看起来真的被禁用了,我无法选中/取消选中它。我不确定是否100%,但我认为我已经使用了禁用这种方式,并且它按照我的预期工作(文本框不可键入)。所以我想知道我是否需要显式地为文本框设置disabled,或者其他一些CSS破坏了我的预期 更新: 我知道如何为我
我知道如何为我需要的元素显式设置禁用,我只是不想这么做,我想问的是,这是否是禁用它的唯一方法,或者textbox可能完全像checkbox一样工作(不显式禁用),只是一些CSS破坏了这种行为。据我所知,这样做既不利于跨浏览器,也不利于有效的标记。最好的选择是像这样做
$('#myDiv').find('input,textarea,select').attr("disabled", true);
它应该找到div中的所有表单元素,并直接应用禁用标志
编辑:甚至只是
$('input,textarea,select', '#myDiv').attr("disabled", true);
您可以使用选择器:
$(“myDiv:input”).attr(“disabled”,true)代码>或仅美元(“#myDiv*”).attr(“禁用”、“禁用”)@Lee,thx,但我知道如何显式设置它,我想问的是,如果它是禁用它的唯一方法,或者textbox可能完全像checkbox一样工作,只是一些CSS破坏了这种行为。实际上,$(“#myDiv”)。find(“:input”)…
似乎是最好的方法。@Alex在第一句话中,你得到了答案。div
可以没有禁用的属性,理论上它不应该工作。添加禁用的属性只是将禁用应用于元素。是浏览器解释了它。例如,当你禁用一个div时,Chrome什么也不做。我的方法可以在这里看到