gpt4 book ai didi

jquery - Rails 中的远程表单与 jQuery 不起作用

转载 作者:行者123 更新时间:2023-12-01 05:03:08 27 4
gpt4 key购买 nike

我无法执行以下操作:

在页面中我有一个表单;当我提交它时,我想在数据库中插入一条记录,并隐藏该表单,而不重新加载页面。

形式为:

<div class="slide-out-div">
<% form_for @post, :url=>'/posts/create', :remote => true do |f| %>
<%= f.text_area :content %>
<%= f.submit 'submit' %>
<% end %>
</div>

application.js中我有:

$(document).ready(function(){
$("#new_post").submit(function() {
var form = $(this);
var url = form.attr("action");
var cont = form["content"].value;
var formData = form.serialize();
$.post(url, formData, function(html) {
alert('Message sent');
$(".slide-out-div").hide('fast');
});
return false;
});
});

在 *posts_controller.rb* 中:

def create
if !params[:post][:content].nil? and params[:post][:content].length>0
@post = Post.new(params[:post])
@post.save
end
end

问题是插入记录后,没有显示警报,并且加载了页面'/posts/create'(这是一个空白页面,因为我没有写任何东西在create.rb中)我无法使用redirect_to,因为我不知道当前页面是什么(该表单将位于网站的每个页面上)。无论如何,我不想重新加载页面。 (submit() 中的 return false 不应该离开页面,但它确实离开了页面。)可能是什么问题?

附注我无法使用Rails 3,在那里我看到有一个remote_form

最佳答案

$(document).ready(function(){
$("#new_post").submit(function(e) {
e.preventDefault(); <-- prevent the default form submission
var form = $(this);
var url = form.attr("action");
var cont = form.find("name='post\\[content\\]'").val();
var formData = form.serialize();
$.post(url, formData, function(html) {
alert('Message sent');
$(".slide-out-div").hide('fast');
});
});
});

关于jquery - Rails 中的远程表单与 jQuery 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8232594/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com