即使在ajax $ .post请求中返回false之后,页面也会重新加载

时间:2017-04-14 18:35:17

标签: php jquery ajax

我正在尝试使用ajax调用提交表单后上传图片,有一个令我烦恼的问题,新的`<!DOCTYPE html> <html ng-app="plunker"> <head> <meta charset="utf-8" /> <title>AngularJS Plunker</title> <script>document.write('<base href="' + document.location + '" />');</script> <link rel="stylesheet" href="style.css" /> <script data-require="angular.js@1.4.x" src="https://code.angularjs.org/1.4.3/angular.js" data-semver="1.4.3"></script> <script src="app.js"></script> <script> var app = angular.module('plunker', []); app.controller('MainCtrl', function($scope) { $scope.user="admin"; $scope.list = [ {id:1,name:"first",tc:100}, {id:2,name:"second",tc:103}, {id:3,name:"third",tc:105} ] console.log("hi"); console.log($scope.modes); $scope.filterrole=function(item){ return $scope.user=="admin"?true:$scope.list[0]==item; } }); </script> </head> <body ng-controller="MainCtrl"> <div > <div class="col-md-8 col-sm-12 col-xs-12"> <select ng-model="li" > <option value="">select {{user}}</option> <option ng-repeat="li in list |filter: filterrole">{{li.name}}</option> </select> </div> </div> <br> <div><input type="button" value="admin" ng-click="user='admin'"> <input type="button" value="other" ng-click="user='other'"></div> </body> </html>` 给了我实际值,但每当我尝试通过ajax发送它时出现故障并重新加载页面,所以我也看不到控制台,请纠正我错在哪里。

我的javascript代码

INSERT ... SELECT .. WHERE NOT EXISTS (SELECT...)

我的HTML代码

FormData($(this)[0])

然而,文件数据发布在PHP页面中,还有一件事我如何发送隐藏字段值以及formdata对象。我是ajax $("#editImage").submit(function(){ var data = new FormData($(this)[0]); console.log(data); return false; $.post("../galImages", data).done(function(response){ console.log(response); }); return false;}); 方法中的noobie。如果有人有任何想法,请帮助我。

2 个答案:

答案 0 :(得分:1)

当你上传图片时(我的错误,先忘了!): 重要的部分是needed for upload,否则它将失败

$(function () {
$('#my_form').on('submit', function (e) {
    e.preventDefault();

    var $form = $(this);
    var formdata = (window.FormData) ? new FormData($form[0]) : null;
    var data = (formdata !== null) ? formdata : $form.serialize();

    $.ajax({
        url: $form.attr('action'),
        type: $form.attr('method'),
        contentType: false, // needed for upload
        processData: false, // needed for upload
        dataType: 'json', // return
        data: data,
        success: function (response) {
            // response
        }
     });
   });
});

这段代码不是我的,发现它,很久以前就改编了,不能归功于它的原主人,因为我不记得她/他是谁:/

答案 1 :(得分:0)

使用preventDefault()这将阻止表单和页面的默认行为重新加载。

$("#editImage").submit(function (e) {
    e.preventDefault();
    var data = new FormData($(this)[0]);
    console.log(data);
    return false;
    $.post("../galImages", data).done(function (response) {
        console.log(response);
    });
    return false;
});