通过 AJAX 成功创建记录后,rails 表单将保留在原处,其中包含用于创建新记录的数据。
表单调用
<%= form_with model: Usercontent.new, data: {'js-usercontent-form' => true} do |form| %>
<form data-js-usercontent-form="true" action="/usercontents?locale=en" accept-charset="UTF-8" data-remote="true" method="post">
尝试通过reset
重置没有数据的表单
$(document).on('turbolinks:load', function() {
$('[data-js-usercontent-form]').on("ajax:success", function(event, data, status, xhr){
var usercontent = $(xhr.responseText).hide();
$('#usercontents').append(usercontent);
usercontent.fadeIn(1000);
document.getElementById('data-js-usercontent-form').reset();
});
$('[data-js-usercontent-id]').on("ajax:success", function(event, data, status, xhr){
var usercontent_id = xhr.responseJSON.id;
$('[data-js-usercontent-id=' + usercontent_id + ']').hide();
});
});
不幸的是失败了。有多个字段,因此问题是是否有一种方法可以将所有字段清除为其默认(空或提示)状态更新,同时保持销毁 block 的完整性?
最佳答案
因此,您似乎正在使用 ID="data-js-usercontent-form"
来定位表单,但在呈现的 HTML 中,我没有看到该 ID。 Youi 表明 usercontent 正在运行,但它针对的是不同的元素。
请更改创建表单的调用:
<%= form_with model: Usercontent.new, id: 'data-js-usercontent-form', data: {'js-usercontent-form' => true} do |form| %>
此错误应该已记录在您的开发人员工具控制台中,我总是建议您检查它,以防遇到 JS 问题。
关于javascript - Rails AJAX 调用以清除表单输入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56207911/