繁体   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