簡體   English   中英

在rails內部調用javascript函數hidden_​​field_tag

[英]call javascript function inside rails hidden_field_tag

我正在一個簡單的站點中設置Braintree。 Braintree是一種付款平台。 在他們的示例中,他們使用hiddel_field_tag如下:

<%= hidden_field_tag :tr_data, Braintree::TransparentRedirect.transaction_data(
  :redirect_url => confirm_payment_url,
  :transaction => {:type => "sale", :amount => @amount }
) %>

現在,就我而言,我想通過JavaScript函數設置交易金額,因為我只有三個選項,而不是通過服務器。 我已經嘗試了很多事情,例如

<%= hidden_field_tag :tr_data, Braintree::TransparentRedirect.transaction_data(
  :redirect_url => confirm_payment_url,
  :transaction => {:type => "sale", :amount => "return amountFunction();" }
) %>

哪里

function amountFunction()
{
  var amount = $('input[name=optionsRadios]:radio:checked').val();
  return amount;
}

但不起作用。 如您所見,我仍在學習Rails。 所以問題是,如何更改變量或將函數添加到hidden_​​field_tag? 我也可以使用:amount =>“ variable-set-by-javascript”,但無法做到這一點。

我在Braintree工作。 我們錯過了這個問題,但是希望您與支持人員聯系或解決您的問題。

Braintree::TransparentRedirect.transaction_data方法在呈現表單之前在服務器上運行,因此它需要實際數量,而不是字符串,該字符串稍后將被評估並返回一個數量。

另外,您通常不能/不應在transaction_data之外設置客戶端的transaction_data 這將使某人可以更改瀏覽器中的金額並以他們想要的任何金額提交交易-您要避免這種情況,因為這可能會花費您很多錢。

自從您發布此問題以來,我們已經啟動了Braintree.js ,它將允許您將整個表單發布到您的服務器,並在將表單提交給Braintree之前驗證其中的金額是否有效。 我建議您將該集成方法用於任何新的集成,如果需要對付款流程進行其他更改,請升級到該集成方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM