gpt4 book ai didi

php - 为什么我的 jQuery 表单不重新提交?

转载 作者:行者123 更新时间:2023-11-30 13:29:52 24 4
gpt4 key购买 nike

所以我已经这样做了几次并且它起作用了,但是出于某种原因我的表单这次不起作用。当我提交表单时,jQuery 使用 mail.php 进行最后一次验证。然后它要么提交它,要么回显错误的表单。

所以基本上当我提交有错误的表单时,它会回显相应的错误,但是当我更正值并尝试重新提交时,它不会重新提交。

代码如下:

<html>
<head>
<title>Contact Form Example</title>
<script type="text/javascript" src="js/jquery.js"></script>

<script type="text/javascript">
$(document).ready(function() {

$('#email').keypress(function() {
p = {};
p['email'] = document.getElementById("email").value;
$("#emailcheck").load("validate_email.php", p);
});

$('#message').keypress(function() {
p = {};
p['message'] = document.getElementById("message").value;
$("#messagecheck").load("validate_message.php", p);
});

$('#mail').click(function() {

p = {};
p['email'] = document.getElementById("email").value;
p['message'] = document.getElementById("message").value;
$("#body").load("mail.php", p);

});

});
</script>

</head>
<body>

<table style="display: block;" id="body">
<form action="mail.php" method="POST">
<tr>
<td align="right">
<label for="email">Email:</label>
</td>
<td align="left">
<input type="text" name="email" id="email" />
</td>
<td id="emailcheck"></td>
</tr>
<tr>
<td align="right" valign="top">
<label for="message">Message:</label>
</td>
<td align="left">
<textarea rows="5" cols="30" name="message" id="message"></textarea>
</td>
<td id="messagecheck"></td>
</tr>
<tr>
<td></td><td><input id="mail" type="submit" value="Email" onclick="return false;"/></td>
</tr>
</form>
</table>

</body>

最佳答案

就在这里:

$("#body").load("mail.php", p);

您正在替换 #body 的全部内容。这包括您已将回调绑定(bind)到的所有元素,因此所有这些回调都将丢失。这可能只剩下 onclick="return false;" 作为 #mail 的操作,所以你的表单已经死了。

您可以使用 live 绑定(bind)您的回调或 delegate或在替换 #body 时重新绑定(bind)所有处理程序。

关于php - 为什么我的 jQuery 表单不重新提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7142851/

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