2016-11-20 49 views
0

想知道是否有人在不使用超時的情況下做到這一點。動態拉動jQuery ajax參數值

現在我有一個ajax請求,通過外部js拉入令牌。我無法完全控制第三方提供的腳本。

因此,它基本上做了一個ajax請求,並將我傳回一個令牌值。然後我採取這個值,並用它更新表單輸入。

我的問題是表單提交之前有時間完全獲得價值,因此價值永遠不會通過。

我有一些反應與該第三方腳本提供的工作,現在我做這樣的事情。

resonseData從這個腳本傳遞迴我..

if(responseData.dataValue !='') { 
      $('[name=payment_token]').val(responseData.dataValue, function(){ 
       $("#userPaymentUpdate").submit(); 

      }); 
     } 

^問題是表單提交它的時間來更新$( '[NAME = payment_token]')之前。VAL()

反正有沒有辦法繞過這一邊放超時?我認爲通過添加像上面這樣的回調可以解決它,但顯然它不會。

我也有event.preventDefault();在窗體點擊處理程序,但是當這使得第三方腳本根本不會執行。所以基本上只需要提交表單,如果payment_token值已更新。

+0

顯示此代碼的全部內容。我們不知道它是如何適用於表單處理或你從哪裏調用ajax – charlietfl

回答

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. */ 
    } 
+1

謝謝..我怎麼錯過了。在想我需要一個回調。 – limit