javascript - 使用 Javascript 回调在 Rails 表单中设置隐藏字段的值
问题描述
请在这方面提供一些帮助。我有一个包含 4 个表单(通过迭代计划数组创建)的视图,plan_id
每个表单中都有一个隐藏字段。我正在使用Stripe
自定义集成,并且我在 Javascript 回调中提交了特定的表单,但是plan_id
传递给我的 rails 控制器的总是plan_id
页面中最后一个表单
<% @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
提交的表单中的集合。
但是,如果我在回调之外提交表单,我会在隐藏字段中获得正确的值。
请问我怎样才能最好地处理这个
解决方案
推荐阅读
- reactjs - 我可以将 React Bootstrap 与 Next.js 一起使用吗?
- python - conda 无法识别已安装的软件包
- azure - 使用 Dapper 进行 aync 可能会导致 SQL Azure“弹性池的请求限制为 100 且已达到”
- unit-testing - 如何使用 jasmine 和 Angular 7 为 mat 对话框编写单元测试?
- python - 我们可以在 Odoo 中为 Onchange 函数设置确认消息吗
- java - JTable 按代码选择非连续单元格
- c++ - /lib/libstdc++.so.6:没有可用的版本信息
- mongodb - 如何在mongodb中用ObjectIds数组替换字符串数组
- stm32 - 替换现有库中包含的 CRC32 的代码
- typescript - 如何控制firebase函数中抛出错误的输出