我无法弄清楚为什么我无法使用此代码正确执行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>
答案 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")