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

为了解决这个问题,我正在使用Webshim。一切运行良好,直到我注意到当我在form标签上使用 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)中看到Alert触发。

https://jsfiddle.net/3pxsvxxj/

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

干杯。

最佳答案

如您所述,Safari浏览器不支持here所列的required属性。
如果您引用this问题,则它具有提供功能的替代方法。
既然您说过您正在使用Webshim,请引用我链接的问题中的this答案,其中提供了使用Webshim的示例:

<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>

关于javascript - Safari会触发Onsubmit功能,即使所需的输入为空,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42286176/

10-09 07:48
查看更多