我已经有一个正常的HTTP post的表单。现在,我想重写这个表单使用jQuery Ajax请求。以下是我有:使用jQuery在Rails应用程序中调用Ajax
register_user.html.erb
<%= form_tag :action=> "register_user" %>
<label for="user_id_1">user_id_1:</label><br/>
<%= text_field "user", "user_id_1", :size => 20 %>
<label for="user_id_2">user_id_2:</label><br/>
<%= text_field "user", "user_id_2", :size => 20 %>
<%= submit_tag "Submit" %>
users_controller.rb
def register_user
#do something
end
所以,我试图按照this教程,但无法遵循我的应用程序中的相同说明。那么有什么建议?我怎样才能使用上述形式的jQuery Ajax调用?
据我所知,在的application.js(包含在register_user.html.rb的头文件)文件将
jQuery.ajaxSetup({
'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/javascript")}
})
jQuery.fn.submitWithAjax = function() {
this.submit(function() {
$.post(this.action, $(this).serialize(), null, "script");
return false;
})
return this;
};
$(document).ready(function() {
$("#new_review").submitWithAjax(); #WHAT SHOULD REPLACE #new_review?
})
但是,我怎么能关联的提交操作的形式?我是JS,jQuery和Rails的新手。
UPDATE 1条
的Rails 2.3.8
UPDATE 2
<%= form_tag :action=> "register_user" , :html => {:id => "register_user" }%>
该请求不会在
jQuery.fn.submitWithAjax = function() { }
方法去。如何在同一页面上显示
@final_value
数据?
现在,这是我的代码,以显示值(register_user.html.erb
):
<%=
if @final_value != nil
"<h2>The Output is " + @final_value.to_s</h2>" +
end
%>
感谢真棒帮助家伙!
我有Rails 2.3..8 – zengr 2010-09-10 23:11:04
我已经为Rails 2.3.8添加了一个示例 – sled 2010-09-11 09:56:53