Safari 不承认 "required" 属性。如何解决?

Safari is not acknowledging the "required" attribute. How to fix it?

<form id="customerForm">
    <label>
        First Name:
        <input id="firstName" required />
    </label>
    <label>
        Social Security Number:
        <input id="ssn" required pattern="^d{3}-d{2}-d{4}$"
            title="Expected pattern is ###-##-####" />
    </label>
    <input type="submit" />
</form>

当我在 Chrome 中尝试该文档时,它接受条件并按预期显示错误。

但是当我在 Safari 中尝试该文档时,它没有显示任何错误。

目前,Safari 不会针对用户未提供的表单字段中的必填值(也不会针对用户在表单字段中输入的无效值)发出任何错误消息。但是您可以通过使用 hack 或 polyfill 来启用它。有关基于 jQuery 的 polyfill 插件,请参阅 HTML5 Form Validation Fallback (without a library) for a lightweight hack that enables it, and see h5Validate

目前,Safari 不支持 "required" 输入属性。 http://caniuse.com/#search=required

要在 Safari 上使用 'required' 属性,您可以使用 'webshim'

1 - 下载 webshim

2 - 输入此代码:

<head>
    <script src="js/jquery.js"></script>

    <script src="js-webshim/minified/polyfiller.js"></script> 

    <script> 
        webshim.activeLang('en');
        webshims.polyfill('forms');
        webshims.cfg.no$Switch = true;
    </script>
</head>

所需的属性应该在 Safari 10.1 and newer 中可用。