javascript - Rails AJAX 调用以清除表单输入数据

标签 javascript ruby-on-rails

通过 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/

相关文章:

Javascript 对象字符串值 - 应该隐藏时呈现的 HTML 代码

ruby-on-rails - 为什么每次都需要定义 source 到 RVM

mysql - 如何有条件地连接并从连接表中获取数据?

ruby-on-rails - 此 ruby​​ 代码如何用于设置配置

ruby-on-rails - 如何在 ruby​​-rails 中自动删除临时文件?

ruby-on-rails - 在 ruby​​ 中指定 foreach 枚举器的起点

javascript - 循环剑道甘特排

javascript - Selenium 使用 Xpath 读取隐藏 Web 元素的文本

javascript - 如何捕获 2 级列表中的顶部复选框并为其设置样式

javascript - 如何在 HTML 中将两个同名的单选按钮 block 分隔开?