gpt4 book ai didi

单击 'Submit' 按钮时,Javascript 函数会触发两次

转载 作者:行者123 更新时间:2023-11-30 09:02:52 25 4
gpt4 key购买 nike

我正在尝试使用 AJAX 将记录插入数据库。我不确定为什么,但提交按钮的 onclick 标记中引用的 javascript 函数似乎被触发了两次,因此我每次点击都会在我的数据库中获得两条记录。

在 JS 中放置警报,我设法弄清楚问题出在 JS 函数被调用两次,而不是 PHP 脚本进行两​​次插入。所以,除非有人问,否则我不会发布 PHP 脚本。

这是表单的 HTML:

<form id="notify" method="post" action="add_notify.php">            
Name: <input type="text" class="formname" name="name" value="" size="20"/>
Email: <input type="text" class="formname" name="email" value="" size="20"/>
<input type="submit" class="sendform" name="submit" onclick="processInfo()" value="Go!"/>
</form>

Javascript:

$("document").ready(function() {
$("#notify").submit(function() {
processInfo();
return false;
});
});

function processInfo()
{
var errors = false;
// Validate name
var name = $("#notify [name='name']").val();
if (!name) {
errors = true;
document.getElementById('name_error').innerHTML = 'You must enter a name.';
}

var email = $("#notify [name='email']").val();
if (!email)
{
errors = true;
document.getElementById('email_error').innerHTML = 'You must enter an email.';
}
else
{
var validEmail = true;

validEmail = validateEmail(email);

if (!validEmail)
{
errors = true;
document.getElementById('email_error').innerHTML = 'You must enter a valid email address.';
}
}

if (!errors)
{
$("#notify").ajaxSubmit({success:showResult});
return false;
}
}

最佳答案

您正在调用 processInfo 两次,一次是在提交处理程序中,一次是在点击处理程序中。这可能是原因。

这里 onclick="processInfo()" 和里面 $("#notify").submit(函数() {
过程信息();
返回假;
});

关于单击 'Submit' 按钮时,Javascript 函数会触发两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7791545/

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