Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何使用ENTER键从textarea提交AJAX表单?_Jquery_Ruby On Rails_Ajax - Fatal编程技术网

Jquery 如何使用ENTER键从textarea提交AJAX表单?

Jquery 如何使用ENTER键从textarea提交AJAX表单?,jquery,ruby-on-rails,ajax,Jquery,Ruby On Rails,Ajax,我正在开发一个RubyonRails 2.3.8应用程序,我想知道当用户在文本区域内按ENTER键时,如何为表单提交一个远程表单 以下是表格代码: <% remote_form_for :post, PostComment.new, :url => save_outside_comment_path(post_id), :html => { :method => :put} do |f| %> <%= f.text_area :comment,

我正在开发一个RubyonRails 2.3.8应用程序,我想知道当用户在文本区域内按ENTER键时,如何为表单提交一个
远程表单

以下是表格代码:

  <% 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函数中指定任何语法,如
success:
。我只想让它使用AJAX提交
远程表单。

我想你是在问如何进行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"
    });
  }
});
如果使用,可以保存一些参数。获取

或者,邮寄

哪些是.ajax的包装器


我不是rails的人,因此您需要更新第一个jQuery对象的class/id,以查找

远程表单。\u谢谢您的回答。这样做的问题是,一旦表单提交,我已经在从控制器的操作中执行html替换。例如,我不想(或者至少我从来没有这样做过)从jQuery中指定一个成功事件。Rails中还有其他方法可以做到这一点吗?只需将success函数留空AJAX调用背后的思想是在不重新加载整个页面的情况下处理提交请求。在本例中,您将触发处理提交的相同控制器操作,但它将被称为my AJAX函数。然后通过AJAX请求发回HTML,并在success函数中动态替换表单(或区域)的内容。
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"
    });
  }
});