Передача скрытого поля на основе кнопки отправки - PullRequest
0 голосов
/ 15 апреля 2019

Как передать скрытое поле в зависимости от нажатой кнопки?

У меня есть несколько способов оплаты, нашивки и PayPal. Я хотел бы передать параметр, основанный на том, какой метод используется для данных и простоты создания платежа.

Например, если:

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

Подано, хочу order.payment_method = a

Если:

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

Подано, хочу order.payment_method = b

Есть ли у рельсов единственный способ сделать это?

Я также буду отмечать javascript в случае

Ответы [ 3 ]

0 голосов
/ 15 апреля 2019

Используется JS для решения:

<input type="submit" value="Submit" %>" name="paypal" onclick= "return handleClick('paypal')"></input>

function handleClick(val){
    document.getElementById('hiddenMethod').value = val;
}

Работает немного по-другому с синтаксисом rails / ruby, но суть есть. Теперь все работает нормально.

0 голосов
/ 15 апреля 2019

Вам не нужен дополнительный скрытый ввод.Кнопка отправки сама может передавать значение, как и любой другой ввод, когда вы отправляете форму.Если в форме есть несколько кнопок отправки, будет пропущена только нажатая.

Каждая кнопка отправки должна иметь имя и значение.

<%= 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" %>
0 голосов
/ 15 апреля 2019

Вы можете использовать поле ввода типа hidden для передачи любого значения параметра.Например,

<input type="hidden" id="paypal" name="paypalPayment" value="paypal">

Надеюсь, это поможет.Для рельсов, может быть, ниже ссылка может помочь https://apidock.com/rails/ActionView/Helpers/FormHelper/hidden_field

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...