Ajax Обновить страницу Обновить - PullRequest
1 голос
/ 04 августа 2011

Я схожу с ума, и я не могу понять, как остановить обновление страницы при отправке формы через ajax.

Я настроил jsfiddle, чтобы вы могли на него посмотреть: эта ссылка

Я выполнил event.prefentDefault () и вернул false;но не могу заставить его работать.Я просто тупой?

Конечный результат должен состоять в том, что при отправке формы область формы должна исчезнуть и быть заменена «скрытым» ajax_message, которое просто гласит: «проверьте свой телефон».

Заранее спасибо за сохранение моей волосяной линии:)

Ответы [ 7 ]

1 голос
/ 04 августа 2011

Вы submit_number функция определена в обработчике события "готов к документу" и видима только внутри этой функции (области) и ее дочерних элементов, поэтому вы не можете использовать ее из HTML, где доступна только глобальная область.

Если бы у вас был активирован firebug или что-то подобное, вы увидите это в консоли ошибок.

Быстрый взлом , чтобы заставить его работать, будет заменить

function submit_number(event) {

с

window.submit_number = function(event) {

, таким образом, явно помещая вашу функцию в глобальную область видимости, но это не рекомендуемый способ.Нет смысла загрязнять глобальную область с помощью вашей единственной целевой функции.

Лучшим подходом было бы зарегистрировать вашу функцию в качестве обработчика событий из JS, например так:

$('form.kinkast_signup').submit(submit_number);

Также вы можетехотите добавить идентификатор в эту форму и ссылаться на него по идентификатору вместо имени класса.

0 голосов
/ 04 августа 2011

Я исправил вашу скрипку:

http://jsfiddle.net/ntJux/5/

Я просто незаметно назначил обработчик событий, как в:

$('#idOfTheForm').submit(function(event){
    ...
});
0 голосов
/ 04 августа 2011

Попробуйте это http://jsfiddle.net/ntJux/6/

0 голосов
/ 04 августа 2011

Функция, которая вызывается при возникновении события onclick, должна просто возвращать false.

0 голосов
/ 04 августа 2011
<form method="post" class="kinkast_signup" onsubmit="submit_number(); return false">
<input id="login_email" type="text" name="to" />
<input id="signInButtonSubmit" type="submit" name="action" value="Send" />
</form> 

А потом

    window.submit_number=function() {
           //Prevent Default page refresh on submit
            //event.preventDefault();

......
}

protectDefault () можно удалить.

0 голосов
/ 04 августа 2011

Вместо использования "onclick" в вашей форме, привяжите его к вашему JavaScript.

Итак, вместо

function submit_number(event)

do

$(form).submit(function(event)
...