使用Javascript回调设置Rails表单中隐藏字段的值

时间:2018-05-10 22:06:56

标签: javascript html ruby-on-rails

请相信我会对此有所帮助。 我有一个包含4个表单的视图(通过迭代计划数组创建),每个表单中都有一个plan_id个隐藏字段。我正在使用Stripe自定义集成,并且我在Javascript回调上提交了特定表单,但是传递给我的rails控制器的plan_id始终是页面中最后一个表单的plan_id < / p>

<% @plans.each.with_index do | plan,index | %>
 ...
<%= form_tag('/billings/subscription_checkout',:id => "elm-#{index}", 
    method: :post) do  %>
  <input name="plan_id" type="hidden" value="<%= plan.code %>">
  </input>

<a id="plan-<%= index %>" class="selectPlan" >Select Plan</a>

然后,我在JS回调中提交表单:

<script>
var handler = StripeCheckout.configure({
key: "<%= Rails.configuration.stripe[:publishable_key] %>",
image: 'https://stripe.com/img/documentation/checkout/marketplace.png',
currency: 'usd',
token: function(token) {
 stripeToken = token.id;
 $("form#elm-<%= index%>").append($("<input type=\"hidden\" 
 name=\"stripeToken\" />").val(stripeToken));
 $("form#elm-<%= index%>").submit();
...

在控制器操作中,params[plan_id]的值始终设置为最后一个表单中plan_id的值,而不是设置在提交的表单中的plan_id

如果我在回调之外提交表单,我会在隐藏字段中获得正确的值。

请问我最好能处理这个

0 个答案:

没有答案