在jQuery UJS提交远程表单后运行功能

时间:2019-01-02 01:20:30

标签: jquery html reactjs rails-ujs

    <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 :(得分: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>