在ajax提交后清除text_field
问题描述:
我正在用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('');除非不清除描述字段,否则一切都会清除并重新加载。
答
简单修复。
在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') %>");
你的第一次尝试应该有工作。你在用create.js.erb中的其他js代码做什么?它甚至会起火吗?如果确实如此,你是否会在浏览器控制台中看到任何错误? – Mandeep 2014-10-04 05:27:21
没有必要替换整个输入只需要DOM ID和清除文本字段,你想清除? – 2014-10-04 05:48:44
你是否已经完成了'console.log'以确保你的完成处理程序正在运行? – 2014-10-04 06:01:06