gpt4 book ai didi

javascript - ajax 增加每次点击的响应数量

转载 作者:行者123 更新时间:2023-12-03 12:15:36 24 4
gpt4 key购买 nike

我有一个简单的ajax请求(它只是发送表单),当我单击按钮时它会被调用。问题是,当我单击登录并且失败时,php 会回显“失败”,当我再次单击它时,php 会“回显”两次,然后三次等。直到我刷新页面然后“计数器”重置,才会发生这种情况。它位于 $(document).ready() 内部并且使用 POST。 我的代码:

编辑#1“代码编辑”

$('#register').click(function (event)
{
if (true)
{
var frm = $('#registerForm');
alert('debug1'); //DOESN'T REPEAT
frm.submit(function (ev) // THIS FUNCTION REPEATS, DONT KNOW WHY.
{
alert('debug2'); //DOES REPEAT
$.ajax(
{
type: frm.attr('method'),
url: frm.attr('action'),
data: frm.serialize(),
success: function (text)
{
$("#reg_dialog").dialog({
hide:{effect:"drop",duration: 1000}}).dialog('close');
$("#info").html(text).fadeIn(400).delay(2500).fadeOut(500,function(){
if(text!=="User Created"){
location.reload(); // THIS ONE RESETS "THE COUNTER" AS I SAID BEFORE, BUT I DONT WANT TO RELOAD WHOLE PAGE
}})
}
});
ev.preventDefault();
return false;
});
}

编辑#2(代码解释)

我希望它如何工作。

  1. 用户填写表单(有效)
  2. 用户点击“注册”按钮,php 执行数据库代码(如果所有内容都填写正确,则创建用户)
  3. 如果出现诸如用户名已被占用之类的错误,php 会回显“用户名已被占用”
  4. 现在问题来了。如果用户想使用其他用户名,然后单击“注册”并且用户填写的数据没问题,则 php 会回显“用户已创建”,然后“用户名已使用”。这是因为 ajax 发送了两次表单。如果用户再次填写错误,然后填写正确,他会收到“用户已创建”和 2x“用户名已被占用”,这样一遍又一遍地重复,直到他刷新页面。

最佳答案

您多次绑定(bind)到 Submit 事件。之前

frm.submit() 

用途:

frm.unbind("submit");

关于javascript - ajax 增加每次点击的响应数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24724911/

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