Сообщение JQuery не работает в документе, но работает в консоли? - PullRequest
0 голосов
/ 11 ноября 2010

У меня есть страница, на которой нужно использовать $ .post (), но по какой-то причине точный код работает, когда я запускаю его из консоли firebug, а не из моего скрипта?Мой сценарий:

$(document).ready(function () {
    $('#dl_btn').click(function () {
        $.post(
            "news_csv.php",
            $("#dl_form").serialize(), function (data) {

            alert('error');

            if (data == 'success') {
                alert('Thanks for signing up to our newsletter');
                window.open("<?php echo $_GET['link']; ?>");
                parent.Shadowbox.close();
            } else {
                alert(data);
            }
        });
    });
});

Это не ссылка, так как она печатается правильно, но выдает ошибку в строке 140 минут jquery, я пробовал использовать разные версии jquery и безрезультатно,Я действительно не понимаю, почему это не работает.

Когда я перешел с $ .post на $ .ajax и использовал функцию обратного вызова с ошибкой, я получил ошибку 'error', и ошибка не определена?

Не думаешь, у кого-нибудь есть идеи?Буду очень признателен.

Спасибо,

Том

1 Ответ

0 голосов
/ 11 ноября 2010

Находится ли ваша кнопка щелчка внутри элемента формы?

В этом случае нажатие на нее вызовет не только событие onClick, к которому вы привязаны, но и отправку формы, так что вы окажетесь вслучай, когда ваш браузер выполняет оба запроса параллельно - с непредсказуемым результатом, конечно.

Я попробовал тот же код с элементом, который не вызывает отправку формы, и он работал как ожидалось.

Одно замечание: если вы планируете использовать простую строку в качестве возвращаемого значения и что-то с ней делать (отображать ее или около того), тогда можно делать то, что вы делаете прямо сейчас.Однако, если у вас более сложный ответ на запрос ajax, вы должны указать тип ответа (xml, json ..) в качестве последнего параметра метода post.

Надеюсь, это поможет.

...