HTML5必需的输入属性让我提交一个表单

时间:2013-08-10 09:40:51

标签: jquery html5

我有一个超级简单的形式:

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

1 个答案:

答案 0 :(得分:2)

你不能依赖required的支持(不幸的是)。请参阅:http://caniuse.com/#feat=form-validation 正如您所看到的,Safari尚未完全支持此API。

在所有常用的浏览器实现它之后你不应该依赖这个,因为恶意访问者可能会使用非默认浏览器并且只是跳过这些检查。