如何在将ajax发送到php之后关闭页面的重新加载以及如何修复此代码

时间:2015-06-09 12:12:20

标签: javascript php jquery ajax

如何在将AJAX发送到PHP后关闭重新加载页面?每次按提交时页面都会重新加载。是否可以发送一些没有形式的图片?

<script>
    $(document).ready(function (e){
        $("#uploadForm").on('submit', (function(e){
            e.preventDefault();
            $.ajax({
                url: "/class/pdo/add_new_field.php",
                type: "POST",
                data:  new FormData(this),
                contentType: false,
                cache: false,
                processData:false,
                success: function(data){
                    $("#targetLayer").html(data);
                },
                error: function(){}             
            });
        }));

        $('#uploadForm').submit(function () {
            return false;
        });
    });
</script>

<form id="uploadForm" method="POST">
    <div style="margin-left: 75px;">
        <div class="save_divs">picture<input type="file"></div>
        <div class="save_divs">name:</div>
        <div class="save_divs">date</div>
        <div class="save_divs">short_info</div>
        <div class="save_divs">long info<input type="submit"></div>
    </div>
</form>

我是否需要在/网址中使用斜杠($.ajax)?

2 个答案:

答案 0 :(得分:2)

  1. 太多的事件处理程序。除非sendContactForm();很重要,否则删除第二个。如果是,请用它更新您的问题。
  2. 在事件处理程序中出现语法错误,从)
  3. 中移除(来自之前的(提交中的功能和}));之一)
  4. 如果class是层次结构中的顶级文件夹,则可以使用/ class,如果它位于表单位置下,则为no。使用&#34; class /..."
  5. 像这样

    <script>
    $(function(){
        $("#uploadForm").on('submit',function(e){
            e.preventDefault();
            $.ajax({
                url: "/class/pdo/add_new_field.php",
                type: "POST",
                data:  new FormData(this),
                contentType: false,
                cache: false,
                processData:false,
                success: function(data){
                    $("#targetLayer").html(data);
                },
                error: function(){}             
            });
        }); // also a ) too many here
    });
    </script>
    

答案 1 :(得分:0)

好的,第一个问题是: -

  1. 您已使用on两次提交绑定两次,一次使用submit(),仅使用一次。

  2. 现在由于第二次绑定而出现错误, sendContactForm()中存在一些错误,因为它永远不会到达行return false并且提交默认页面并重新加载,检查控制台错误,为了防止将来混淆,您可能会使用{ {1}}在函数开始时停止进一步的传播。 (谢谢@rory)

    e.preventDefault();