想知道在没有使用超时的情况下是否有某种方法可以做到这一点。
现在我有一个ajax请求,通过外部js提取令牌。我没有完全控制第三方提供的脚本。
所以它基本上是一个ajax请求,并将一个令牌vaule传回给我。然后我获取该值并使用它更新表单输入。
我的问题是表单在有时间完全获取值之前提交,因此值永远不会传递。
我有一些响应可以使用这个第三方脚本提供的,现在我正在做类似的事情。
resonseData从这个脚本传回给我..
if(responseData.dataValue !='') {
$('[name=payment_token]').val(responseData.dataValue, function(){
$("#userPaymentUpdate").submit();
});
}
^问题是表单在有时间更新$('[name = payment_token]')之前提交.val()
是否有任何方式将此放在一边暂停?我想通过添加上面的回调可以解决它,但显然它没有。
我也有event.preventDefault();在表单上单击处理程序,但是当它启用第三方脚本时根本不会执行。因此,如果pay_token值已更新,则基本上只需提交表单。
答案 0 :(得分:1)
如果我正确地阅读此内容,它看起来更像是一个订单问题。 responseData.dataValue具有值,否则如果条件不会被处理。
您的代码应如下所示:
if(responseData.dataValue !='') {
$('input[name=payment_token]').val(responseData.dataValue); /* I'm guessing you're using a hidden field for the payment token. */
$("#userPaymentUpdate").submit(); /* at this point, the value will have already been assigned. */
}