如何使用 jQuery 有效禁用和启用元素:了解 attr() 和 prop() 之间的区别
问题:
您尝试最初禁用输入,然后在单击链接时启用它们,但您当前的 jQuery 解决方案无法正常工作。
HTML:
<code class="html"><input type="text" disabled="disabled" class="inputDisabled" value=""></code>
jQuery:
<code class="javascript">$("#edit").click(function(event){ event.preventDefault(); $('.inputDisabled').removeAttr("disabled") });</code>
原因:
您正在使用removeAttr()来删除“disabled”属性,但这种方法有局限性,尤其是像“disabled”这样的布尔属性。
解决方案:使用 prop() 而不是 attr()
对于布尔属性,建议使用 prop() 方法而不是 attr()。此方法显式修改元素的底层属性值,这对于布尔属性来说更加高效且合适。
更新了 jQuery:
<code class="javascript">$("#edit").click(function(event){ event.preventDefault(); $('.inputDisabled').prop("disabled", false); // Element(s) are now enabled. });</code>
为什么prop() 优于 attr() 对于布尔属性?
注意: 在 jQuery 之前的版本中到 3.0,布尔属性上的removeAttr() 也会将相应的属性设置为 false。此行为在后续版本中已被弃用,凸显了使用 prop() 获取布尔属性的重要性。
以上是使用 jQuery 禁用和启用元素的最佳方法是什么:布尔属性的 prop() 与 attr()?的详细内容。更多信息请关注PHP中文网其他相关文章!