Javascript jQuery默认在POST之前进行验证
我有以下代码块:Javascript jQuery默认在POST之前进行验证,javascript,jquery,forms,Javascript,Jquery,Forms,我有以下代码块: $(document).ready(function(){ $("#form").submit(function(ev) { ev.preventDefault(); $.ajax({ type: "POST", url: "proxy.php", data: postData,
$(document).ready(function(){
$("#form").submit(function(ev) {
ev.preventDefault();
$.ajax({
type: "POST",
url: "proxy.php",
data: postData,
success: function(data) {
window.location = "thankyou.php";
},
error:function(xhr, ajaxOptions, thrownError){
console.log(xhr.responseText);
}
});
});
$("#form").validate({
//a bunch of validation here
});
});
问题是,即使某些验证失败,这将继续使用ajax发布。。为什么会这样?我使用ev.preventDefault()的方式是否错误?我想要的是,在发送帖子之前对表单进行验证,如果验证失败,那么只需取消,我相信这是通过ev.preventDefault()?在执行ajax请求之前,测试表单是否有效:
if (!$(this).valid()) return;
您可能也想尝试submitHandler选项:在执行ajax请求之前,测试表单是否有效:
if (!$(this).valid()) return;
您也可以尝试submitHandler选项:在
验证设置中,您可以指定使用函数的submitHandler。您可以在submitHandler中使用所有验证登录,并有条件地返回true/false。在submitHandler中返回false
,则不会提交表单。试试这个
$("form").validate({
submitHandler: function(form) {
// if validation is successfull return true else false.
}
});
在validate
设置中,您可以指定接受函数的submitHandler
。您可以在submitHandler中使用所有验证登录,并有条件地返回true/false。在submitHandler中返回false
,则不会提交表单。试试这个
$("form").validate({
submitHandler: function(form) {
// if validation is successfull return true else false.
}
});