【发布时间】:2013-02-25 10:59:37
【问题描述】:
有什么方法可以防止 Jquery 清除表单值?
我制作了以下 Jquery 脚本,它基本上将表单 POST 数据发送到 php 函数,然后如果 PHP 输出成功则重定向到新页面,否则会显示错误。
$('#update').click(function(e) {
e.preventDefault();
$.ajax({
type: "POST",
url: 'function.php',
data: $(this).serialize(),
success: function(data)
{
if (data === 'Success') {
window.location = 'acc.php';
}
else {
alert('Please try again.');
}
}
});
});
通过回显一个 php 变量来填充表单值,如下所示:
<input type="text" name="name" id="name" value="<?php echo $name ?>">
页面加载时一切正常,但是在我通过前端表单更新字段的值并点击提交后,Jquery 删除了字段的所有值,将空白值发送回 php(输入数据库)和在返回成功消息时重定向到新页面。
我删除了 Jquery 并尝试将表单直接发送到 php,它工作正常,所以这绝对是一个 Jquery 问题。
编辑:PHP 变量是从另一个函数中提取的,当该特定页面首次加载时,它们最初会正确显示在字段中。
关于问题可能是什么的任何想法?
【问题讨论】:
-
serialize()仅适用于form元素,但看起来#update(因此this)是一个按钮。此外,阻止单击提交按钮的默认行为不会阻止提交表单。改为收听表单上的submit事件。