我已經通過所有的解決方案,我能找到的堆棧溢出和谷歌走了,但他們都不來幫忙。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