gpt4 book ai didi

javascript - 在表单提交到数据库时防止页面重新加载

转载 作者:行者123 更新时间:2023-11-30 15:36:53 25 4
gpt4 key购买 nike

我看到了一些与我相似但不完全相同的问题,所以如果这是重复的,抱歉。我正在使用 javascript 隐藏和显示功能来尝试在他们提交表单后隐藏“谢谢”消息,该表单将信息提交到数据库,并且工作正常,但我无法阻止页面转到下一页。它总是转到/about_you。

我试过在表单顶部使用 onsubmit = "return false",它完全阻止了表单提交。试过 onclick="return false."我不太确定如何实现 jquery 函数。对jquery一无所知,所以如果答案涉及jquery,请尽可能详细地告诉我。

我只是想让页面在之后加载“感谢您完成调查”。这是一个单页网页,因此无法转到该网页的另一个副本版本。非常感谢任何帮助。谢谢。

这是javascript函数。

function hideyou(){
document.getElementById("about_you_form").style.display = "none";
document.getElementById("thank_you").style.dislay = "block";
}

这是提交

<input id="about_you_submit" type="submit" onclick="hideyou();" value="Submit">

这是我放入 ruby​​ 的代码。

post '/about_you' do

fname = params[:fname]
lname = params[:lname]
address = params[:address]
address2 = params[:address2]
city = params[:city]
state = params[:state]
zip_code = params[:zip_code]
email = params[:email]

db.exec("INSERT INTO public.users (fname, lname, address, address2, city, state, zip_code, email)
VALUES ('#{fname}', '#{lname}', '#{address}', '#{address2}', '#{city}', '#{state}', '#{zip_code}', '#{email}')")

最佳答案

我认为您正在尝试在不刷新页面的情况下提交表单。现在您可以提交表单,数据被发送并保存到数据库中,但是 javascript:

document.getElementById("about_you_form").style.display = "none";
document.getElementById("thank_you").style.dislay = "block";

无法执行和完成它的工作,因为浏览器被重定向(您正在向/about_you 发出请求)。您需要做的是简单的 AJAX 请求(在后台发送数据,浏览器停留在同一页面,成功发送并从服务器响应后 - javascript 启动)

将您的hideyou 函数更改为:

function hideyou(e, btn){
e.preventDefault();
var form = $(btn).parents('form');

$.ajax({
type: "POST",
url: $(form).attr('action'),
data: $(form).serialize(),
success: function(response){
document.getElementById("about_you_form").style.display = "none";
document.getElementById("thank_you").style.dislay = "block";
}
});

}

然后改变

<input id="about_you_submit" type="submit" onclick="hideyou();" value="Submit">

<input id="about_you_submit" type="submit" onclick="hideyou(event, this);" value="Submit">

关于javascript - 在表单提交到数据库时防止页面重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41402682/

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