2017-02-16 64 views
3

必需属性在Safari中不起作用。即使所需的输入为空,Onsubmit功能也会在Safari上触发

要解决这个问题,我使用Webshim。直到我注意到,当我使用在窗体标签上提交时,它会在您提交时触发,无论这些输入是否为空。 您在输入中看到“请填写此字段”,但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/

请,我需要解决这个问题,我不能找到一种方法。

干杯。

+0

你能分享: - 下载webshim

2 - 将这个代码http://caniuse.com/#search=required

若要使用Safari中的 '必要' 的属性,您可以

1使用 'webshim'您初始化webshim的部分代码? – Santi

+0

对不起Santi,我忘了那个细节。我把它添加到帖子中。 –

回答

0

如您所说,Safari浏览器不支持required属性,如列出here

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

既然你说你正在使用webshim,从我挂的问题,提供使用webshim的一个例子是指this答案:

这时,Safari浏览器不支持“要求”输入属性。

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

Hi Mor,这就是为什么我说我使用Webshim来解决不能在Safari上工作的“必需”。但不是我在帖子中描述的问题。 –

+0

我的不好,请看看更新的答案 –

+0

是的,我已经在我的代码中有所有的。我把它添加到帖子中。 Webshim解决了我的“必需”输入问题,但它不会停止提交函数来触发。 –

相关问题