Запуск формы отправки с несколькими кнопками отправки

0

У меня есть форма с двумя кнопки отправки, Rails бэкенд рассчитывает получить один из названия кнопок (action1 или action2) в params хэш. Я хочу показать "ты уверен?" сообщение на одной из кнопок. У меня есть этот код:

<form action="/models" id="myform" method="post">
  <input name="action1" id="action1Button" type="submit" value="Make Action 1">
  <input name="action2" type="submit" value="Make Action 2">
</form>

  $('#action1Button').click(function() {
    $('#popup').modal('show');

    // cancel a submit
    return false;
  });

  $('#popupSubmitButton').click(function() {
    $('#myform').submit(); // I want this to trigger action1
  });

  $('#popupCancelButton').click(function(){
    $('#popup).modal('hide');
  });

Проблема заключается в том, что при отправке формы в запросе нет имени отправленной кнопки. Есть ли способ отправить форму, как если бы нажала кнопка "Отправить"?

  • 0
    $('#myform').submit(); // this should trigger action1 что неверно. это просто отправить форму без каких-либо действий. вместо этого вы захотите вызвать событие click на кнопке action 1 таким образом, чтобы обойти исходный обработчик события, который вы указали.
  • 0
    Вы пробовали $('#action1Button').trigger('click')
Показать ещё 5 комментариев

1 ответ

1
Лучший ответ

Запустите событие с помощью trigger(), а в обработчике событий вы можете проверить, было ли событие инициировано или нет, проверив event.isTrigger

$('#action1Button').on('click', function(e) {
    if (!e.isTrigger) {
        $('#popup').modal('show');
        return false;
    }
});

$('#popupSubmitButton').on('click', function() {
    $('#action1Button').trigger('click');
});

$('#popupCancelButton').on('click', function () {
    $('#popup').modal('hide ');
});

FIDDLE

Ещё вопросы

Сообщество Overcoder
Наверх
Меню