我已经发出了这个ajax请求来显示验证错误并阻止页面重新加载
$(document).on('mousedown', ':submit', function() {
//alert('clicked submit');
var form = $("form");
$.ajax({
type: 'post',
url: '/events',
headers: { 'X-CSRF-TOKEN': "{{csrf_token()}}" },
data: form.serialize(),
dataType: 'json',
success: function(data){
},
error: function(data) {
for(errors in data.responseJSON){
swal({text:data.responseJSON[errors]});
}
}
});
});
这段代码一切都很好!问题是成功提交后我在DB中有2个输入...我该如何防止这种情况?
答案 0 :(得分:1)
您确定该表单实际上是不是通过邮寄提交和保存值,而是通过ajax提交一次?通常,如果您正在捕获提交事件,那么您仍然可以提交表单,甚至不提交提交按钮的mousedown事件,例如
$('form').on('submit', function(e) {
// Stop the forms default submit action
e.preventDefault();
//alert('clicked submit');
var form = $("form");
$.ajax({
type: 'post',
url: '/events',
headers: { 'X-CSRF-TOKEN': "{{csrf_token()}}" },
data: form.serialize(),
dataType: 'json',
success: function(data){
},
error: function(data) {
for(errors in data.responseJSON){
swal({text:data.responseJSON[errors]});
}
}
});
});
此外,e.preventDefault()将阻止表单与您的ajax操作一起提交。此外,您最好通过ID或类名选择表单。