这个问题与已经回答的问题有点不同......
我要做的是在表单提交时运行一个函数,autoHide()
它调用一个 PHP 文件,artistdo.php
执行 MySQL 查询,如果它返回 true(查询成功),则表单不会提交。
我得到的是 MySQL 查询没有运行,即使我删除了查询并将 return true 放在artistdo.php
页面中,ajax 中的 return false 也不会停止表单提交,但它确实会导致alert("Success");
被调用,但是,如果我将 return false 放在autoHide()
函数内但在 AJAX 之外,则表单不会正确提交。这是我到目前为止所拥有的:
表单页面:
<head>
function autoHide() {
$.ajax({
'url': '/artistdo.php',
'type': 'GET',
'dataType': 'json',
'data': {
cmd: 'autoHideProduct'
},
'success': function () {
alert("Success");
return false;
}
});
}
</head>
<body>
<form action="http://off-site/form.php" method="post"
onSubmit="return autoHide()">
<input type="submit" value="submit"
onMouseOver="this.style.cursor='pointer'">
</form>
以及artistdo.php
页面(为了便于阅读,这是一个简化版本):
if($get['cmd'] == 'autoHideProduct') {
$query = mysql_query("UPDATE products SET house='0'");
if ($query) {
return true;
} else {
return false;
}
所以,如果我从页面中完全删除整个 MySQL 查询artistdo.php
并将其替换为除了 之外return true;
,表单仍然提交,这让我认为问题出在 AJAX 中,因为artistdo.php
页面肯定返回 true 并且alert("Success");
正在被调用。如果我将 移到return true
AJAX 调用之外,则表单不会正确提交。
我希望这是有道理的...
谢谢你的帮助!