我使用 railsform_with
作为远程表单。在提交之前,我想显示一个带有动态消息的自定义确认框。在确实确认该框后,我想最终提交表格。我想出了 'ajax:beforeSend' 事件处理程序:
const form = document.getElementById('assign_sessions_to_employees')
form.addEventListener(
'ajax:beforeSend',
(event) => {
event.preventDefault();
swal.fire({
title: 'Are you sure ?',
text: `You are about to spend ${expectedExpenditure()} credits.`,
showCancelButton: true,
}).then((result) => {
if (result.isConfirmed) {
console.log('submitting')
Rails.fire(form, 'submit');
}
})
}
)
这很好用,但是当我运行Rails.fire(form, 'submit');
时,当我最终想提交重新触发的表单时'ajax:beforeSend'
,我陷入了循环。
使用 form_with 和 rails ujs 实现这种行为的正确方法是什么?