jQuery submit не обрабатывает "успех" - PullRequest
1 голос
/ 05 февраля 2012

Я рассмотрел все решения, которые я смог найти в Stack Overflow и Google, но ни одно из них, похоже, не помогло.

У меня есть функция в Clojure (платформа Noir), которая берет два ключа: «текст» и «день заметки» и вставляет значения в базу данных. Независимо от того, работает это или нет, функция возвращает ответ JSON с {"result": true} (для целей тестирования).

(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, и они правильно отформатированы ("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;
  });
});

Что происходит здесь, когда код такой же, как и выше, при нажатии пользователем кнопки происходит вызов HTML / newpost, и на странице отображается {"result": true}. Если я закомментирую часть «$ .ajax», появится всплывающее окно с правильным содержимым, но если я удалю комментарии - нет сообщения, просто перейду прямо к /newpost.

Я думал, что должно было случиться, что страница / newpost никогда не будет отображаться, но Ajax будет вызывать вызов с dataString и окно с сообщением «Success!» будет показано.

Где я повернул не туда?

1 Ответ

2 голосов
/ 05 февраля 2012

Удалить точку с запятой после объявления функции success:

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

Объявление функции success является частью объекта, который разделяет объявления запятой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...