如果输入被禁用是因为它是禁用字段集的子项,IE(甚至 11)似乎没有任何方法可以确定它是否被禁用。有什么方法可以在不搜索树的情况下确定这一点吗?
显然,我可以使用 jQuery 找到最接近的字段集并检查它是否已禁用(如果存在),但这看起来很老套,更不用说可能很昂贵了。我可以查看 currentStyle 以确定它是否变灰 - 但这更加 hacky。我错过了什么吗?
<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>
最佳答案
“继承”输入
在 IE 中并没有真正被禁用,它只是看起来被禁用了,您仍然可以输入。在禁用 fieldset
时禁用子输入的真正万无一失的方法是将 disabled
属性应用于各个输入。然后它们将真正被禁用,您将能够通过 document.querySelectorAll
关于javascript - 当禁用字段集的子项时确定禁用状态元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21296253/