gpt4 book ai didi

javascript - 表单提交和 Ajax 同时使用 onsubmit?

转载 作者:可可西里 更新时间:2023-10-31 23:31:37 28 4
gpt4 key购买 nike

如果之前有人问过这个问题,我很抱歉,但我需要发送我的表单数据,同时发送表单提交和单击提交时触发的 ajax 调用。原因是因为用户被重定向了,我想预先将 det formdata 存储到我的数据库中。

所以我尝试使用提交表单数据的 javascript 函数的表单提交和触发。这不起作用,发送了表单并且没有进行 ajax 调用。因此,我尝试将 ajax 调用从函数中取出,然后查看它是否有效,并且确实有效,在页面刷新时进行了 ajax 调用并更新了我的数据库。

这里是som代码:

HTML

<form id="danlevi" onsubmit="return senddata()" action='<?php echo esc_url( get_option( 'shopping_cart_url' ) ); ?>' method='post' enctype="multipart/form-data">
<input type="text" name="first" />
<input type="text" name="last" />
<input type="text" name="e-mail" />
<input type="text" name="phone" />
<input type="text" name="street" />
<input type="text" name="zip" />
<input type="submit" value="send" />
</form>

JavaScript

jQuery(document).ready(function() {
function senddata() {
var formdata = jQuery("#danlevi").serialize();
var decoded = decodeURIComponent(formdata);
strip = decoded.replace(/[\[\]]/g, "_");
alert(strip);
jQuery.ajax({
type: "POST",
url: 'dev/wp-content/themes/twentythirteen/custom/process_address.php',
data: strip,
});
}
});

我不知道为什么这不起作用,我想要的是让页面等到 ajax 调用完成,完成后,照常发送表单。

如果我使用 return false,它会起作用。我希望有人能解释我明显做错了什么,并告诉我这样做的方法。您在此代码中看到的警报仅用于调试。

最佳答案

等待 ajax 完成然后提交表单。

   jQuery(document).ready(function() {
function senddata() {
var formdata = jQuery("#danlevi").serialize();
var decoded = decodeURIComponent(formdata);
strip = decoded.replace(/[\[\]]/g, "_");
alert(strip);
jQuery.ajax({
type: "GET",
url: 'dev/wp-content/themes/twentythirteen/custom/process_address.php',
data: strip,
complete: function(){
jQuery("#danlevi").submit(); //submit the form after ajax completes
}
});
return false; //stop the form from initially submitting
}
});

关于javascript - 表单提交和 Ajax 同时使用 onsubmit?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19129463/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com