我在使用Rails 3和jQuery,并有一个简单的形式,一个文本输入和一个提交按钮.我有提交的表单:remote =>真的,并希望在表单提交后清除输入.我试过这个jQuery代码:
$('#new_message').submit(function() { $('#message_content').val(''); });
但是,这样会在提交表单之前清除输入,所以我最终提交一个空白表单.
搜索一下后,我也尝试了以下版本:
$('#new_message').submit(function(e) { e.preventDefault(); this.submit(); $('#message_content').val(''); });
…但这似乎覆盖:remote =>真正的魔法,并且表单被提交与全页重新加载.有任何想法吗?
解决方法
当提交按钮被按下时,表示标记为remote =>在rails.js中,javascript的代码是submit().您不需要覆盖该功能.
尝试这个在$(文档).ready –
(编辑:使用bind而不是live.感谢Darren Hicks.)
$("#new_message").bind("ajax:complete",function(event,xhr,status){ $('#message_content').val(''); }
这为ajax:complete事件添加了一个事件处理程序.当您的ajax-submit-form完成时,此事件将被触发.更多here.