我已经通过所有的解决方案,我能找到的堆栈溢出和谷歌走了,但他们都不来帮忙。jQuery的提交不处理“成功”
我用Clojure(比诺框架)函数可以接受两个键,“文本”和“一天的音符”,并插入值到数据库中。无论是否有效,该函数都会返回带有“result”:true}的JSON响应(用于测试目的)。
(defpage [:post "/newpost"] {:keys [text day-of-note]}
[]
(println "newpost called")
(post text)
(response/json {:result true}))
我的表单是一个带有一个文本框,一个复选框和一个按钮的简单表单。
<form action="/newpost" id="new-post" method="post">
<textarea id="entry" name="text">Insert todays happenings</textarea>
<br />
<input checked="checked" name="day-of-note" type="checkbox" value="true">
<input type="submit" value="Add entry">
</form>
在提交表格我添加了一个电话,提醒我展示dataString的内容和格式正确无误(“文本= LALALA &一天的音符=真正的”)。
$(function() {
$("#new-post").submit(function (e) {
e.preventDefault();
var dataString = $("#new-post").serialize();
alert(dataString);
$.ajax({
url: "/newpost",
type: "POST",
dataType: "json",
data: dataString,
success: function() {
alert("Success!");
};
});
return false;
});
});
代码时,因为它是上面什么发生在这里,有一个HTML调用/ newpost当此按钮,用户点击该页面显示{“结果”:真}。如果我注释掉“$ .ajax” - 在弹出的消息框中包含正确的内容,但是如果我删除了注释 - 没有消息框,请直接转到/ newpost。
我认为是应该发生的是,/ newpost页永远不会被渲染,但与dataString通话将被阿贾克斯,并与一个消息框来向它提出的“成功了!”将被显示。
我在哪里走错转弯?
您有一个额外的分号成功后':函数(){}'。尝试删除它,看看它是否更好。 – 2012-02-05 12:58:21