2014-10-04 68 views
1

我正在用ajax提交鏈接。一切工作正常,但當表單重新加載時,我無法清除文本字段。在ajax提交後清除text_field

這裏是形式:

<%= 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:完整的事件處理程序阻止部分和表單重新加載並使用.val('');除非不清除描述字段,否則一切都會清除並重新加載。

+0

你的第一次嘗試應該有工作。你在用create.js.erb中的其他js代碼做什麼?它甚至會起火嗎?如果確實如此,你是否會在瀏覽器控制檯中看到任何錯誤? – Mandeep 2014-10-04 05:27:21

+0

沒有必要替換整個輸入只需要DOM ID和清除文本字段,你想清除? – 2014-10-04 05:48:44

+0

你是否已經完成了'console.log'以確保你的完成處理程序正在運行? – 2014-10-04 06:01:06

回答

1

簡單修復。

在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') %>");