我有一個創建新帖子的表單,以及一個在提交后清除輸入欄位的刺激控制器。但是,它會在輸入值到達我的 rails 控制器之前執行此操作。
這是我的form_controller.js
import { Controller } from "@hotwired/stimulus"
export default class extends Controller {
clear() {
this.element.reset()
}
}
我的表格:
<turbo-frame id='<%= id %>'>
<%= form_with model: post, data: { controller: :form } do |f| %>
Title: <%= f.text_field :title %>
Body: <%= f.text_area :body %>
<%= f.submit data: {action: 'form#clear'} %>
<% end %>
</turbo-frame>
一切都很好,除了創建了一個空帖子(我沒有驗證),因為我的輸入欄位在它們到達我的 Rails 控制器之前被 Js 擦除干凈。
我確實環顧四周,找到了這篇文章,但真的不知道該怎么做。 如何在使用 ruby?? on rails 發出“ajax”表單請求后清除文本區域
uj5u.com熱心網友回復:
該事件是在提交按鈕單擊時執行的,而不是嘗試在表單提交時運行它。沒有測驗代碼,但你可能想做這樣的事情:
嘗試1:
import { Controller } from "@hotwired/stimulus"
export default class extends Controller {
connect() {
this.element.addEventListener("submit", clear);
}
clear() {
this.element.reset()
}
}
并從提交按鈕中洗掉操作:
<%= f.submit %>
或者你可以試試這個(在 turbo submit 上運行操作):
嘗試2:
<turbo-frame id='<%= id %>'>
<%= form_with model: post, data: { controller: :form, action: "turbo:submit-end->form#clear" } do |f| %>
Title: <%= f.text_field :title %>
Body: <%= f.text_area :body %>
<%= f.submit %>
<% end %>
</turbo-frame>
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/443721.html
上一篇:如何獲取登錄表單的設計錯誤?
下一篇:存根檔案存在嗎?在RSpec
