根据提交按钮传递隐藏字段

时间:2019-04-15 07:22:18

标签: javascript jquery ruby-on-rails ruby

如何根据单击的按钮传递hidden_​​field?

我有多种付款方式,即条纹和贝宝。我想传递一个参数,该参数基于用于数据的哪种方法以及是否易于创建付款。

例如,如果:

<input type="submit" class="a"></input>

已提交,我想order.payment_method = a

如果:

<%= form.submit, id: "b" %>

已提交,我想order.payment_method = b

有唯一的方法可以做到这一点吗?

我也将标记javascript以防万一

3 个答案:

答案 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" %>