Javascript 如何防止提交但仍验证必填字段?
我有一个表单,当提交表单时,我使用Javascript 如何防止提交但仍验证必填字段?,javascript,jquery,ajax,html,validation,Javascript,Jquery,Ajax,Html,Validation,我有一个表单,当提交表单时,我使用e.preventDefault()阻止它,但我仍然希望浏览器在我进行AJAX调用之前验证所需的字段 我不想对javascript验证感兴趣,我只想让浏览器验证所需字段(HTML5) 如何实现这一点?在提交功能的末尾添加以下内容: if (evt && evt.preventDefault) { evt.preventDefault(); } else if (event) { event.returnValue = false;
e.preventDefault()
阻止它,但我仍然希望浏览器在我进行AJAX调用之前验证所需的字段
我不想对javascript验证感兴趣,我只想让浏览器验证所需字段(HTML5)
如何实现这一点?在提交功能的末尾添加以下内容:
if (evt && evt.preventDefault) {
evt.preventDefault();
} else if (event) {
event.returnValue = false;
}
return false;
并在函数中传递varevt
,如下所示:
function(evt) { /* Your Code */ }
即使您没有执行
检查有效性
检查,它也可以工作。在chrome中,如果表单无效,则不会调用表单上的提交函数:
$(document).ready(function(){
$("#calendar_form").submit(function(e){
e.preventDefault();
calendarDoAjax();
});
function calendarDoAjax(){
var proceed = false;
if( $("#calendar_form")[0].checkValidity ){
if ($("#calendar_form")[0].checkValidity()) {
proceed = true;
}
}else{
proceed = true;
}
if (proceed) {
//Do ajax call
}
}
});
对于不支持HTML5表单验证的浏览器有什么考虑/回退吗?如果浏览器支持HTML5验证,则不需要添加任何内容(只要有适当的属性)。类似这样的:复制品:@JackPattishallJr。是的,但是现在我没有时间。由于我在服务器端使用了一个框架,所以字段仍然是经过验证的。谢谢,没用,我只是试过了。这一个工作原理如下: