想知道是否有办法在不使用超时的情况下做到这一点。
现在我有一个 ajax 请求,它通过外部 js 提取 token 。我无法完全控制该脚本,因为它是由第三方提供的。
所以它基本上执行一个ajax请求并向我传回一个 token 值。然后,我获取该值并用它更新表单输入。
我的问题是表单在有时间完全获取值之前提交,因此该值永远不会被传递。
我有一些可以使用这个第三方脚本提供的响应,现在我正在做类似的事情。
resonseData 从此脚本传回给我..
if(responseData.dataValue !='') {
$('[name=payment_token]').val(responseData.dataValue, function(){
$("#userPaymentUpdate").submit();
});
}
^ 问题是表单在有时间更新 $('[name= payment_token]').val() 之前提交
有没有办法解决这个问题并设置超时?我认为通过添加像上面这样的回调可以解决这个问题,但显然它没有。
我还有 event.preventDefault();在表单上单击处理程序,但是当启用该处理程序时,第 3 方脚本根本不会执行。因此基本上只需要在 payment_token 值已更新的情况下提交表单。
最佳答案
如果我没看错的话,这看起来更像是一个秩序问题。 responseData.dataValue 有值,否则 if 条件不会被处理。
您的代码应如下所示:
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. */
}
关于javascript - jQuery ajax 动态拉取参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40700819/