如何在ajax请求页面中调用return false?

时间:2015-01-31 03:31:55

标签: javascript php jquery ajax

如何在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>

2 个答案:

答案 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
 //...
 });