如何在ajax请求页面中调用return false;
?
首先,当我按submit button
时,它会拨打return checkform(this);
在function checkform ( form )
中将使用ajax帖子到页面test.php
在test.php
我可以使用return fales;
表格id="f1"
我测试但没有工作,我该怎么做?
的index.php
<form method="post" action="" ENCTYPE = "multipart/form-data" onsubmit="return checkform(this);" id="f1">
<label>
Your Username
</label>
<input type="text" name="username" id="username">
<br>
<label>
Your Password
</label>
<input type="password" name="password" id="password">
<br>
<input name="submit" type="submit" value="Sign in"/>
<span id="mySpan_username_password"></span>
</form>
<script language="JavaScript" type="text/javascript">
function checkform ( form )
{
$.ajax
(
{
url: 'test.php',
type: 'POST',
data: $('#f2').serialize(),
cache: false,
success: function (data) {
$('#mySpan_username_password').html(data);
}
}
)
}
</script>
<form id="f2">
<input type="text" name="username_send_value" value="xx"/>
<input type="text" name="password_send_value" value="yy"/>
</form>
test.php的
<script>
return faalse;
</script>
答案 0 :(得分:0)
您可以针对您的ajax请求返回error
个回复,例如404
。
test.php的
<?php
header('HTTP/1.0 404 Not Found');
?>
答案 1 :(得分:0)
这是因为您的checkform
方法会发出ajax调用并继续前进。它不会等待ajax响应,这是因为ajax调用的默认异步行为。
为了解决这个问题,首先需要决定是否要让ajax调用异步。
if async:false
function checkform ( form )
{
var response=false;
$.ajax({
url: 'test.php',
type: 'POST',
async:false,//just add async:false here
data: $('#f2').serialize(),
cache: false,
success: function (data) {
$('#mySpan_username_password').html(data);
response=true;
}
});
return response;
}
if async:true
将回调作为参数传递并处理回调中的代码。
function checkform ( form ,callback)
{
var response=false;
$.ajax({
url: 'test.php',
type: 'POST',
data: $('#f2').serialize(),
cache: false,
success: function (data) {
$('#mySpan_username_password').html(data);
callback(true);
}
error: function(data){
callback(false);
}
});
}
方法调用:
checkform(form,function(response){
if(response===true)
//....
else
//...
});