jQuery Ajax表单插件的行为不符合预期

时间:2013-05-30 07:03:00

标签: jquery

有没有人看到下面的问题?我试图让ajaxSubmit()工作,但第一个婴儿步骤失败了。我的理解是,任何动作脚本 - processaj.php here - outputs都应放入#output元素。我把processaj.php简化为:

<?php
    error_reporting(E_ALL);
    echo ("In processaj.php");
?>

因此,当我提交内容时,我期待“在processaj.php中”显示在#output div中,但没有任何内容出现。谢谢你的帮助..

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org    /TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Ajax Form Test</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"  type="text/javascript"></script>
<script type="text/javascript" src="js/jquery.form.js"></script>
<style>
#output {
    width: 300px;
    height:200px;
    background-color: beige;
    border:1px solid red;
    margin-top: 20px;
}

</style>
 <script>
        $(document).ready(function() {
            $('#UploadForm').on('submit', function(e) {
                e.preventDefault();
                $(this).ajaxSubmit({  
                    target: '#output'
                });
            });
        });
    </script>

</head>
<body>

    <form action="processaj.php" method="post" id="UploadForm">
        data: <input name="data" type="text" value="enter"/>
        <input type="submit"  id="SubmitButton" value="Submit" />
    </form>
    <div id="output"></div>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

您应该在on submit callback函数中返回false,而不是使用e.PreventDefault()。如文档中所述。

$('#myForm2').submit(function() { 
    // inside event callbacks 'this' is the DOM element so we first 
    // wrap it in a jQuery object and then invoke ajaxSubmit 
    $(this).ajaxSubmit(options); 

    // !!! Important !!! 
    // always return false to prevent standard browser submit and page navigation 
    return false; 
});