我有一个超级简单的形式:
<form>
<input name="name" placeholder="Your name" required>
<input name="email" type="email" placeholder="Your email" required>
<input type="submit" value="Submit">
</form>
我正在使用一些jQuery(CoffeeScript样式)提交它:
$('form').submit (event) ->
do event.preventDefault()
$.post('../mail.php', $('form').serialize(), (data) ->
do $('form')[0].reset
)
.done -> ...
.fail -> ...
.always -> ...
在Chrome中(与Chrome Canary一样)它就像魅力一样,如果某些输入为空,它也不会让我提交表单(它还显示“请填写此字段”消息,因为它应该)。 在许多其他浏览器中(Safari,WebKit Safari ie),它允许我提交表格,所有输入都是空的。
问题是什么?我有点担心event.preventDefault
,也许它阻止某些浏览器检查input
s?
答案 0 :(得分:2)
你不能依赖required
的支持(不幸的是)。请参阅:http://caniuse.com/#feat=form-validation
正如您所看到的,Safari尚未完全支持此API。
在所有常用的浏览器实现它之后你不应该依赖这个,因为恶意访问者可能会使用非默认浏览器并且只是跳过这些检查。