必需的属性在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/