0

我有一个超级简单的表格:

<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,也许它会阻止某些浏览器检查inputs?

4

1 回答 1

2

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

你不应该依赖这个,毕竟常用的浏览器也实现了它,因为恶意访问者可能使用非默认浏览器并跳过这些检查。

于 2013-08-10T09:45:21.233 回答