如果一个输入框由于是禁用的字段集的子节点而被禁用,即使是IE(甚至11版本),似乎也没有任何办法来确定它是否被禁用。有没有某种方法可以在不搜索树的情况下确定它是否被禁用?
显然,我可以使用jQuery查找最接近的字段集,并检查是否已禁用(如果存在),但这似乎很低效,更不用说潜在的开销了。我可以查看currentStyle来判断它是否被灰化 - 但这更加可疑。我错过了什么吗?
显然,我可以使用jQuery查找最接近的字段集,并检查是否已禁用(如果存在),但这似乎很低效,更不用说潜在的开销了。我可以查看currentStyle来判断它是否被灰化 - 但这更加可疑。我错过了什么吗?
<fieldset disabled>
<input id="fieldset_child" type="text" value="Inherit Disabled" />
</fieldset>
<script>
// IE 9-11 returns zero instead of one like Firefox and Chrome do
console.log(document.querySelectorAll('#fieldset_child:disabled').length);
// this return false in all browsers
console.log(document.getElementById('fieldset_child').disabled);
</script>
example: http://jsfiddle.net/cmcnulty/ySWH2/
:disabled
选择器找到它们。将disabled
应用于输入本身可以使它们可被找到。在您当前的HTML示例中 - 您不能使用document.querySelectorAll('fieldset[disabled] #fieldset_child')
选择器吗?http://jsfiddle.net/ySWH2/8/ - Yuriy Galanter