Функция запуска после того, как jquery ujs отправит удаленную форму - PullRequest
0 голосов
/ 02 января 2019
    <form method='delete' data-remote='true' action={'/analysis_items/' + this.props.item.id}
      onSubmit={this.props.loadPathwayData}
    >
      <button type='submit' />
    </form>

У меня есть эта форма в React + Rails.Когда форма отправлена, jquery ujs отправляет запрос, и onSubmit запускается правильно, но onSubmit запускается до отправки формы, и мне нужно, чтобы она запускалась после.Есть ли способ добиться этого с помощью jquery ujs?

1 Ответ

0 голосов
/ 02 января 2019

в итоге у вас есть два действия отправки в форме, одно - действие, а другое - событие кода onSubmit.Вместо этого вы можете удалить действие и просто сделать все в клиентской части JS.

Например, если вы хотите использовать jQuery.

submitForm(e) {
    // don't submit form to server (page reload)
    e.preventDefault()
    // jquery to make delete request instead of form submit
    $.ajax({
        url: '/analysis_items/' + this.props.item.id,
        type: 'DELETE',
        success: function(result) {
            // then run your previous onSubmit js code
            this.props.loadPathwayData()
        }
    });
}

и ваша форма может выглядеть следующим образом:

<form onSubmit={submitForm}>
    <button type='submit' />
</form>
...