我正在开发Ruby On Rails 2.3.8应用程序,我想知道当用户在textarea中按ENTER键时如何提交remote_form_for
表单。
以下是表单代码:
<% remote_form_for :post, PostComment.new, :url => save_outside_comment_path(post_id), :html => { :method => :put} do |f| %>
<%= f.text_area :comment, :rows => 1, :id => "txtOutsideComment_#{post_id}", :class => "new-reply-text" %>
<% end %>
这是执行提交的jQuery函数,但不是AJAX:
jQuery('.new-reply-text').keypress(function(e) {
if (e.keyCode == 13 && !e.shiftKey) {
e.preventDefault();
this.form.submit();
}
});
我已经从我的控制器进行了页面更新,我是否不想从这个jQuery函数中指定任何语法,如success:
。我只是想让它使用AJAX提交remote_form_for
。
答案 0 :(得分:6)
我想你问的是如何做一个AJAX请求而不是整页提交。如果是的话
jQuery('.new-reply-text').keypress(function(e) {
if (e.keyCode == 13 && !e.shiftKey) {
e.preventDefault();
jQuery.ajax({
url: "/my/URL",
data: jQuery(this).form.serialize(),
success: function(){},
dataType: "json"
});
}
});
如果使用.get,可以保存一些参数 http://api.jquery.com/jQuery.get/
或.post http://api.jquery.com/jQuery.post/
哪些是.ajax的包装器 http://api.jquery.com/jQuery.ajax/
我不是铁杆人,所以你需要更新第一个jQuery对象的类/ id才能找到remote_form_for