【问题标题】:Can't enable html input fields in safari无法在 safari 中启用 html 输入字段
【发布时间】:2019-09-26 15:51:04
【问题描述】:

Fiddle 在这里。从下面给定结构中的 html 元素开始,由于某种奇怪的原因,safari 无法启用所有输入元素。它只启用第一个。可能是什么bug?

<fieldset disabled><div>

    <div><fieldset disabled>
        <input type="text" disabled>
    </fieldset></div>

    <div><fieldset disabled>
        <input type="text" disabled>
    </fieldset></div>

</div></fieldset>

这里是Javascript:

$('fieldset').prop('disabled',false);
$("input").prop('disabled',false);

【问题讨论】:

  • 也许可以试试 $.each() 函数api.jquery.com/jquery.each
  • 我为第二个输入字段分配了一个 id,然后使用 jquery 我尝试直接启用它,但没有成功。
  • 我认为在现实生活中你没有禁用字段集和输入。只需将禁用放在顶部字段集上就足够了。此外,IE 或 Safari 6 及更早版本不支持 fieldset 的禁用选项。另一方面,完全支持输入。
  • 您能否提供一个链接,其中 Safari 文档声明字段集不支持“禁用”?提前致谢。

标签: javascript jquery html webview safari


【解决方案1】:

要让 Safari 正确启用所有输入,您应该从内向外启用所有字段集,因此首先要启用嵌套的:

const fieldsets = document.getElementsByTagName('fieldset');
Array.from(fieldsets).reverse().forEach(fieldset => fieldset.disabled = false);

Complete codepen 带有一些带有字段集的额外用例。

这是在 Safari 13.0 上测试的。这绝对是一个错误,我会向 Apple 报告。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-11
    • 2015-09-04
    • 2019-12-27
    • 2015-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多