3

必需属性在 Safari 中不起作用。

为了解决这个问题,我正在使用 Webshim。一切正常,直到我注意到当我在表单标签上使用onsubmit时,它会在您提交时触发,无论是否有一些必需的输入为空。您会在输入中看到“请填写此字段”,但无论如何都会触发 onsubmit 函数。

<form onsubmit="alert('hi')" action="#">
  <input placeholder="native input works" required>
  <input type="submit">
</form>

这就是我初始化 Webshim 的方式:

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/webshim/1.16.0/dev/polyfiller.js"></script>
    <script> 
        webshim.activeLang('en');
        webshims.polyfill('forms');
        webshims.cfg.no$Switch = true;
    </script>

在这里,您有一个工作示例。您可以在 Safari 和 Chrome 中尝试它,您会看到警报在 Safari 上触发,而不是在 chrome 中。

https://jsfiddle.net/3pxsvxxj/

拜托,我需要解决这个问题,我找不到办法。

干杯。

4

1 回答 1

0

如您所说,Safari 浏览器不支持该属性,如此required所列。

如果您参考这个问题,它有提供该功能的替代方案。

既然你说你正在使用 webshim,请参考我链接的问题中的这个答案,它提供了一个使用 webshim 的示例:

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

要在 Safari 上使用“必需”属性,您可以使用“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>
于 2017-02-16T22:53:12.810 回答