gpt4 book ai didi

PreventDefault() 之后的 jQuery Submit() 未正确提交表单

转载 作者:行者123 更新时间:2023-12-01 07:12:19 25 4
gpt4 key购买 nike

我有一个可以向 PayPal 提交值的表单...

在提交到 paypal 之前,我想以编程方式检查变量并将它们首先保存到数据库

为此,我有一个 on(submit) 代码来拦截默认表单操作,并首先将变量提交到我的脚本进行预处理。

然后一旦确定,我就会调用表单的提交函数..

结果=表单正在发布空白/零变量

cleared_to_submit = 0;
$("#my_form").on("submit", function(e){


if(cleared_to_submit){
cleared_to_submit = 0;
return;
}else{
e.preventDefault();
postvars = $(this).serializeArray();
$(this).find(":input").prop("disabled",true);


url = "?act=pay_now&";
$.post( url, postvars ,function(data){
var stat = data.stat;

if(stat == 'ok'){
cleared_to_submit = 1;
$("#my_form").submit(); //resubmit form

}else if( stat == 'input_error'){

showAlert(statMsg, "danger");

$("#my_form").find(":input").prop("disabled",false);

}else{ // ERROR
$("#my_form").find(":input").prop("disabled",false);
showAlert("Error:" + statMsg, "error");

}
});
}




});

这是预期的副作用吗?

最佳答案

而不是使用标志 cleared_to_submit绕行e.preventDefault() ,尝试使用 $(this).unbind("submit").submit();一旦您完成了此 $("#my_form").on("submit", function(e){ 中需要做的事情功能。

基本上我想说的是:一旦您在.submit()中验证了您的表单,事件,您可以使用此代码提交表单,而无需调用 .submit()您绑定(bind)的事件。

例如:

$("#my_form").on("submit", function(e){
e.preventDefault();
//...validation here
if(stat == 'ok'){
$(this).unbind("submit").submit(); // this line will not trigger the same submit event
}
//...
});

我不确定这是否能解决您的问题,但它可以让您了解如何更轻松地验证表单。

关于PreventDefault() 之后的 jQuery Submit() 未正确提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24865655/

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