提问人:aldrien.h 提问时间:6/8/2023 最后编辑:aldrien.h 更新时间:6/9/2023 访问量:372
如何在不重新加载turbo_frame_tag的情况下提交表单
How to submit a form without reloading turbo_frame_tag
问:
在 Rails 中使用 tubro_frame,如何在不重新加载的情况下提交位于 turbo 框架内的表单?
示例代码:
<%= turbo_frame_tag "sample-frame" do %>
<%= form_with(model: model, url: sample_p_url, method: :put) do |f| %>
#other fields here
<%= f.submit "Save" %>
<% end %>
<% end %>
问题:提交表单时,它还会重新加载框架。
我试图供应形成但没有工作 🤔data: {turbo: true) or data: {remote: true}
答:
0赞
Ray
6/9/2023
#1
如果您希望此表单保留在页面上并更新页面的其他部分,则需要将表单置于 .然后,可以通过设置窗体的属性来显式设置此窗体控制的框架。Turbo Docs:定位到帧内或帧外turbo-frame
data-turbo-frame
但是,如果您希望允许您的表单多次提交,我建议允许它在页面上重新加载为新表单,以便您获得新的.authenticity_token
评论
0赞
aldrien.h
6/12/2023
嗨@Ray - 感谢您的回答,我已经在其他情况下设置了 form(hidden) 在turbo_frame之外并通过刺激脚本手动触发提交操作。但是,这个想法对我来说不是一个好的选择,因为表单需要是动态的,并且是表格行循环的一部分。对于解决方法 - 我所做的是将表单包装在另一个turbo_frame,发生的事情是它只重新加载此帧而不是父帧:)
0赞
Ray
6/23/2023
再看一下有关“定位”的文档。您可以设置为要重新加载的父帧吗?target
id
评论