在ajax提交后清除text_field

时间:2014-10-04 04:25:15

标签: ruby-on-rails ajax

我正在提交与ajax的链接。一切正常,但重新加载表单后,我无法清除文本字段。

以下是表格:

<%= simple_form_for [question, Link.new], :remote => true, html: {id: "new_link"} do |f| %>
 <%= f.input :description, as: :text, input_html: { :class => "createcomment" } %>
 <%= f.button :submit, "Post", class: "button" %>
<% end %>

这就是我在create.js.erb中的所有内容(我的所有尝试都在底部):

$('.button').append("<%= j (render :partial => 'comments/newlink')  %>");
$('#linkpartial').html("<%= j (render :partial => 'comments/newlink')  %>"); 
$('#linkform').reset("<%= j (render :partial => 'links/form') %>");

# What I have tried...

$('.createcomment').val(''); 

$('#link_description').val('');     

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

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

我也尝试过把

$('#link_description').val('');
$('.createcomment').val('');

在links_save.js.erb文件中。

ajax:complete事件处理程序阻止部分和表单重新加载并使用.val('');一切都清除并重新加载,除了它没有清除描述字段。

1 个答案:

答案 0 :(得分:2)

轻松修复。

在create.js.erb中,我不得不将最后一行移到第二行以上,如下所示:

$('.button').append("<%= j (render :partial => 'comments/newlink')  %>");
$('#linkpartial').html("<%= j (render :partial => 'comments/newlink')  %>"); 
$('.createcomment').val('');
$('#linkform').reset("<%= j (render :partial => 'links/form') %>");