0
    <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 实现这一点?

4

1 回答 1

1

您最终在表单上有两个提交操作,一个是操作,一个是 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>
于 2019-01-02T01:25:38.130 回答