如何根据单击的按钮传递hidden_field?
我有多种付款方式,即条纹和贝宝。我想传递一个参数,该参数基于用于数据的哪种方法以及是否易于创建付款。
例如,如果:
<input type="submit" class="a"></input>
已提交,我想order.payment_method = a
如果:
<%= form.submit, id: "b" %>
已提交,我想order.payment_method = b
有唯一的方法可以做到这一点吗?
我也将标记javascript以防万一
答案 0 :(得分:0)
您可以使用hidden类型的输入字段来传递任何参数值。例如
<input type="hidden" id="paypal" name="paypalPayment" value="paypal">
希望这会有所帮助。 对于rails,也许下面的链接可以帮助您 https://apidock.com/rails/ActionView/Helpers/FormHelper/hidden_field
答案 1 :(得分:0)
使用JS解决:
<input type="submit" value="Submit" %>" name="paypal" onclick= "return handleClick('paypal')"></input>
function handleClick(val){
document.getElementById('hiddenMethod').value = val;
}
使用rails / ruby语法的工作方式略有不同,但是要旨在那里。现在可以正常使用了。
答案 2 :(得分:0)
您不需要额外的隐藏输入。提交表单时,提交按钮本身可以像其他输入一样传递值。如果表单中有几个提交按钮,则仅会单击单击的按钮。
每个提交按钮应具有一个名称和一个值。
<%= form.submit "a", name: "payment_method" %>
<%= form.submit "b", name: "payment_method" %>
另外,根据您的情况,应使用button
而不是submit
。这将允许您设置一个不同于其文本的按钮值。
<%= form.button "", value: "a", name: "payment_method", type: "submit" %>
<%= form.button "", value: "b", name: "payment_method", type: "submit" %>