Safari未确认"必需"属性.怎么解决?

Ami*_*asr 15 safari html5 google-chrome required

<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>
Run Code Online (Sandbox Code Playgroud)

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

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

Jér*_*lle 25

目前,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>
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!我决定从CDN中使用它,你可以在这里找到一个缩小版本:https://cdnjs.com/libraries/webshim (3认同)

sid*_*ker 7

目前,Safari尚未针对用户未提供的表单字段中的必需值发出任何错误消息(用户已将无效值放入表单字段中).但您可以使用hacks或polyfill来启用它.请参阅HTML5表单验证后备(没有库)以获取启用它的轻量级hack,并参阅h5Validate以获取基于jQuery的polyfill插件.

  • Webshim是一个很好的库,但是如果你想要做的就是解决OP,那么链接的"HTML5 Form Validation Fallback"在大约20行代码中是完美的. (2认同)