为什么我的表单在ajax提交后不会再次提交到其他网址。
使用以下脚本我想用ajax发布表单,然后将相同的表单提交给其他网址。
首先我的表单会提交到Ajax网址(http://www.mywebsite.com/insertdata.php)然后同一表单会提交给表单操作网址(http://www.example.com/mail.php)
HTML
<form id="contact_form" action="http://www.example.com/mail.php" method="post" novalidate="novalidate" data-track="formSubmit" name="contact_form">
<!------Form Elements ------->
<input class="form-control submit" type="submit" value="Submit">
</form>
的JavaScript
$("form").on("submit", function(event) {
event.preventDefault();
$.ajax({
url: "http://www.mywebsite.com/insertdata.php",
type: "post",
crossDomain: true,
data: $(this).serialize(),
success: function(responce) {
console.log(responce);
return true;
}
});
});
答案 0 :(得分:2)
删除event.preventDefault();
如果调用此方法,则不会触发事件的默认操作。这会停止表单提交到action
属性中的网址。
$("form").on("submit", function(event) {
event.preventDefault();
flag=false;
$.ajax({
url: "http://www.mywebsite.com/insertdata.php",
type: "post",
crossDomain: true,
data: $(this).serialize(),
success: function(responce) {
console.log(responce);
return true;
$("form").off("submit");
$("form").trigger( "submit" )
}
});
});
答案 1 :(得分:1)
在成功功能中添加表单提交。
$("form").on("submit", function(event) {
event.preventDefault();
$.ajax({
url: "http://www.mywebsite.com/insertdata.php",
type: "post",
crossDomain: true,
data: $(this).serialize(),
success: function(responce) {
console.log(responce);
$("form").submit();
return true;
}
});
});
更新:您可以使用按钮点击,它可以正常工作
$(".submit").on("click", function(event) {
答案 2 :(得分:1)
$("#contact_form").on("submit", function(event) {
$.ajax({
url: "http://www.mywebsite.com/insertdata.php",
type: "post",
crossDomain: true,
data: $(this).serialize(),
success: function(response) {
console.log(response);
return true;
}
});
});