<script language="javascript">
function checksubmit() {
$.post('ajax.php', $('#form1').serializeArray(),function(data){
if(data) {
alert(data);
return false;
}
});
return false;
}
</script><form id="form1" action="" method="post" onsubmit="return checksubmit()">
<input name="name" type="text"/><br>
<input name="pass" type="text"/>
<input name="submit" type="submit" value="提交"/>
</form>
我的问题是,当提交后如果在checksubmit的最后不加return false那么即使ajax有返回错误也自动提交了
如何实现如果ajax有返回值就不提交,没有返回值或者返回成功那么就提交表单
也就是能否让$.post里面的函数return false起作用?

解决方案 »

  1.   

    2种方法
    1、<form id="form1" action="" method="post" onsubmit="checksubmit(event)">
        <input name="name" type="text"/><br>
        <input name="pass" type="text"/>
        <input name="submit" type="submit" value="提交"/>
    </form>
    <script language="javascript">
    function checksubmit(e) {
        $.post('ajax.php', $('#form1').serializeArray(),function(data){
            if(data) {
                alert(data);
                e? e.preventDefault() : window.event.returnValue = false;
            }
        });
        return false;
    }
    </script>方法2:<script language="javascript">
    function checksubmit() {
        var flag = true;
        $.post('ajax.php', $('#form1').serializeArray(),function(data){
            if(data) {
                alert(data);
                flag = false;
            }
        });
        return flag;
    }
    </script>