jquery - 提交后清除 Rails 远程表单

标签 jquery ruby-on-rails

我正在使用带有 jQ​​uery 的 Rails 3,并且有一个带有单个文本输入和提交按钮的简单表单。我使用 :remote => true 提交表单,并希望在表单提交后清除输入。我尝试了这个 jQuery 代码:

$('#new_message').submit(function() {
  $('#message_content').val('');
});

但是,这会在提交表单之前清除输入,因此我最终会提交一个空白表单。

经过一番搜索后,我还尝试了以下版本:

$('#new_message').submit(function(e) {
  e.preventDefault();
  this.submit();
  $('#message_content').val('');
});

...但这似乎覆盖了 :remote => true 魔法,并且表单通过整个页面重新加载来提交。有什么想法吗?

最佳答案

当按下标记为 remote => true 的表单的提交按钮时,rails.js 中的 JavaScript 代码会执行 submit()。您无需覆盖该功能。

$(document).ready 中尝试此操作 -

(编辑:使用绑定(bind)而不是实时。谢谢达伦·希克斯。)

$("#new_message").bind("ajax:complete", function(event,xhr,status){
  $('#message_content').val('');
}

这会为 ajax:complete 事件添加一个事件处理程序。当您的 ajax-submit-form 完成时会触发此事件。更多 here .

编辑:

不要忘记关闭 bind 方法上的 )

$("#new_message").bind("ajax:complete", function(event,xhr,status){
   $('#message_content').val('');
 })

关于jquery - 提交后清除 Rails 远程表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6053039/

相关文章:

javascript - 如何分离 HTML 元素和 CSS 元素并返回它们?

javascript - 为什么会抛出错误?

ruby-on-rails - 在另一个范围内使用相关模型中的范围

ruby-on-rails - 使用索引为大量数据优化 Postgres 查询

ruby-on-rails - 在我的 rspec 中找不到访问方法

ruby-on-rails - 功能规范在本地通过,但在 Circle CI 上失败

javascript - 将转义的 outerHTML 转换为变量

javascript - 根本无法让 JQuery UI Selectable 工作

jquery - 使用带有选择选项的 jquery ui 选项卡传递变量

ruby-on-rails - Prawn pdf附件在邮件中