【问题标题】:call javascript function inside rails hidden_field_tag在rails hidden_​​field_tag中调用javascript函数
【发布时间】:2012-12-18 20:37:13
【问题描述】:

我正在一个简单的站点中设置 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",但没能做到。

【问题讨论】:

    标签: javascript ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2 braintree


    【解决方案1】:

    我在布伦特里工作。我们错过了这个问题,但希望您联系support 或解决您的问题。

    Braintree::TransparentRedirect.transaction_data 方法在表单呈现之前在服务器上运行,因此它需要一个实际金额,而不是稍后将评估并返回金额的字符串。

    此外,您通常不能/不应该在transaction_data 之外设置客户端/之外的金额。这将允许某人更改浏览器中的金额并提交他们想要的任何金额的交易——这是您想要避免的事情,因为这可能会花费您的钱。

    自从您发布此问题以来,我们已经启动了Braintree.js,它允许您将整个表单发布到您的服务器,并在before submitting the form to Braintree 验证金额是否有效。如果您需要对付款流程进行其他更改,我建议您使用该集成方法进行任何新的集成,或者升级到它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-29
      • 2011-12-05
      • 2015-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多