我正在开发一个Ruby On Rails 2.3.8应用程序,我想知道当用户在textarea中按ENTER键时如何提交remote_form_for。 提交表单后,我已经从控制器的操作中执行了html替换。
这是我的代码:
jQuery('.new-reply-text').keypress(function(e) {
if (e.keyCode == 13 && !e.shiftKey) {
e.preventDefault();
jQuery.ajax({
url: this.form.onsubmit(),
data: this.form.serialize(),
success: {},
dataType: json
});
}
});
以下是表单代码:
<% remote_form_for :post, PostComment.new, :url => save_outside_comment_path(post_id), :html => {:method => :put, :onsubmit => save_outside_comment_path(post_id)} do |f| %>
<%= f.text_area :comment, :rows => 1, :id => "txtOutsideComment_#{post_id}", :class => "new-reply-text" %>
<%#= f.submit 'Publish', :onClick => "javascript:return validateField(this, #{PostComment::OUTSIDE_COMMENT_MIN_LENGTH}, #{PostComment::OUTSIDE_COMMENT_MAX_LENGTH});" %>
<% end %>
请帮帮我! 感谢您阅读
答案 0 :(得分:2)
在您的代码中,这指向文本框,因此无法使用。试试这个
jQuery('.new-reply-text').keypress(function(e) {
if (e.keyCode == 13 && !e.shiftKey) {
e.preventDefault();
var frm = $(this).closest("form");
jQuery.ajax({
url: frm.attr("action"),
data: frm.serialize(),
success: {},
dataType: json
});
}
});