我尝试在验证成功后提交表单,因此我运行以下代码,并且两个操作同时执行。我也尝试提交处理程序方法,但它只会出错。我的代码如下所示:
$("#request_form").validate({
debug: false,
onfocusout: function(element) {
$(element).valid();
},
errorClass : 'has-error',
rules: {
Subject : "required",
Screen: "required"
},
messages: {
Subject : "Subject cannot be empty",
Screen: "Screen cannot be empty"
},
submitHandler: function(form) {
form.submit();
}
});
$("#request_form").on('submit',
(function(e)
{
$("#request_form").validate();
$("#request_form").valid()
{
alert("test");
var action = "Provide_Feedback";
var form = $('form')[0];
var formData = new FormData(form);
formData.append('action','Provide_Feedback');
e.preventDefault();
$.ajax({
url: "support_update.php",
type: "POST",
data: formData,
contentType: false,
cache: false,
processData:false,
success: function(data)
{
if (data == "200") {
alert("Your Request Sent.");
window.location = 'provide_feedback.php';
}
else {
alert("There was an error occurred!");
}
}
});
}
}));
答案 0 :(得分:0)
插件的submitHandler
仅在表单有效时触发。你真的不需要你自己的处理程序。
将您的ajax放入submitHandler
并删除form.submit()
。
form.submit()
告诉浏览器通过默认进程发送表单,如果你想用ajax提交它,这显然不是你想要的。
考虑到你在ajax成功中使用javascript进行重定向,但是不清楚为什么你真的想在第一时间使用ajax
答案 1 :(得分:0)
内部提交处理程序删除form.submit();
&返回像return 1;
那样的numaral值,即
submitHandler: function(form) {
return 1;
}
在$("#request_form").on('submit',(function(e)
内部调用验证功能&检查返回值是否等于1&继续进行:
$("#request_form").on('submit',(function(e)
{
if($("#request_form").validate()!=1)
{
return false;
}
//Continue your code here
希望这会有所帮助。