javascript - jQuery 提交不处理 "success"

标签 javascript jquery webforms clojure

我已经遍历了所有可以在 Stack Overflow 和 Google 上找到的解决方案,但似乎没有一个有用。

我在 Clojure(Noir 框架)中有一个函数,它接受两个键,“text”和“day-of-note”,并将值插入到数据库中。无论是否有效,该函数都会返回带有 {"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>

在提交表单时,我添加了一个警报调用以显示数据字符串的内容并且它们的格式正确(“text=lalala&day-of-note=true”)。

$(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;
  });
});

当代码如上所示时,这里发生了什么,当用户单击按钮并且页面显示 {"result":true} 时,有一个对/newpost 的 HTML 调用。如果我注释掉“$.ajax”部分,消息框会弹出正确的内容,但如果我删除注释——没有消息框,直接进入/newpost。

我认为应该发生的是永远不会呈现/newpost 页面,但是 Ajax 会向它调用 dataString 和一个带有“成功!”的消息框。将被显示。

我哪里走错路了?

最佳答案

去掉success函数声明后的分号:

success: function () {
    alert("Success!");
}

success 函数声明是对象的一部分,用逗号分隔声明。

关于javascript - jQuery 提交不处理 "success",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9149381/

相关文章:

javascript - 几种基础展示模态需要不同的背景

javascript - 如何在CKEditor的保存按钮上捕获点击事件

c# - 如何从对象数据源获取数据集列值

javascript - 如何发送和接收大型 JSON 数据

javascript - 需要来自变量值的 AMD 风格的类?

javascript - 排序元素折叠和内容重新加载

jquery - 移动设备上的下拉导航

c# - 如何在 div.Innerhtml asp c# 中添加图像?

javascript - 在需要时创建 JavaScript 函数

javascript - Node : Traversing directories in a recursion