【问题标题】:Run function after jquery ujs submits remote formjquery ujs提交远程表单后运行函数
【发布时间】:2019-01-02 09:31:57
【问题描述】:
<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 实现这个吗?
【问题讨论】:
标签:
jquery
html
reactjs
rails-ujs
【解决方案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>