Ajax提交重定向到新页面(不应该)

时间:2016-03-12 20:25:16

标签: javascript jquery ajax

我无法弄清楚为什么我无法使用此代码正确执行ajax魔法。它只是在服务器处理请求时重定向到新页面。我尝试在jquery函数中放置一个console.log("test");,但它从未调用过。所以我猜测表单提交永远不会通过我的ajax而是直接通过服务器。

$("#startTest").submit(function(e)
            {
                console.log("test"); //This is never called
                e.preventDefault();

                $.ajax(
                {
                    url : 'handler',
                    type: "POST",
                    data : $(this).serialize(),
                    success:function(data) 
                    {
                        alert(data);
                    },
                    error: function() 
                    {
                        alert("failure"); 
                    }
                });
            });


<form id="startTest" method="POST" action="handler">
    <input type="hidden" name="answer" value="startTest">
    <input type="text" name="firstname" value="" placeholder="Navn" id="navn" autocomplete="off"><br>
    <input type="submit" name="submit" value="Start test">
</form>

1 个答案:

答案 0 :(得分:0)

清空表单操作。如果您的表单有一个操作,那么在您提交脚本时会遵循该操作。但是你想通过ajax实现这个过程,所以你不要填写动作标签。这样的事情

library(caret)
load("data.RData")
load("testClass_new.RData")

label <- factor(c(label, recursive = TRUE))
trainingDigit <- data.frame(do.call(rbind, trainingDigit))

control <- trainControl(method = "repeatedcv",
                        number = 10,
                        repeats = 5,
                        p = 0.9)

knnFit <- train(x = trainingDigit,
                y = label,
                metric = "Accuracy",
                method = "knn",
                trControl = control,
                preProcess = "pca")