Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Простой пример аякса 
:(
    Опции темы
Serious2008
Дата 12.11.2011, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 294
Регистрация: 28.1.2011

Репутация: нет
Всего: нет



Вот как у меня в оригинале.


Код

<div id="output">
<form id="myForm" method="post" action="/poll-15-3.html">

<p align=center><b>asdasd</b></p>

<input type=radio value="0" name="vopros[]"> asdasdasd
<br><input type=radio value="1" name="vopros[]"> asdasdasdasd
<br><input type=radio value="2" name="vopros[]"> asdasdasdasd<br>&nbsp;



<input type=submit value=Отправить>



</form>



</div>

<br><p align=center><a href="http://articlesua.net/poll-all.html">Статистика</a></p>



<script type="text/javascript">

$(document).ready(function(){



  var options = { 



    target: "#output",

    beforeSubmit: showRequest,

    success: showResponse, 

    timeout: 3000

  };

  



  $('#myForm').submit(function() { 

    $(this).ajaxSubmit(options); 



    return false;

  }); 



});



// вызов перед передачей данных

function showRequest(formData, jqForm, options) { 



    var queryString = $.param(formData); 





    return true; 

} 

 

// вызов после получения ответа 

function showResponse(responseText, statusText)  { 



$('#output').show();



}

</script>


Вот как в отладчике.
user posted image

После нажатия отправить появляется новая форма. Её код не знаю как показать, но в отладчике вот так оно выгялидит
user posted image

И когда на второй форме нажимаю на кнопку АЯКС не срабатывает, а срабатывает именно выполнение. Вот это и есть загвозка. Не могу понять почему не срабатывает аякс.

Это сообщение отредактировал(а) Serious2008 - 13.11.2011, 19:16
PM MAIL   Вверх
Serious2008
Дата 13.11.2011, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 294
Регистрация: 28.1.2011

Репутация: нет
Всего: нет



Я тут суть вопроса поменял. Просто не создавал новую тему.
PM MAIL   Вверх
ksnk
Дата 13.11.2011, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



А в чём вопрос-то? В том, что установленные обработчики событий тут-же, после первого нажатия на сабмит теряются? Ну, дык, в результате выполнения запроса черным по белому так и написано - убей все, что у тебя в #output (в том числе и обработчики) и влепи новую форму. Восстанавливать обработчики событий неплохо бы...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Serious2008
Дата 13.11.2011, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 294
Регистрация: 28.1.2011

Репутация: нет
Всего: нет



ksnk, 
Подожди обработчик событий, на сколько я понимаю у меня храниться в 
<script type="text/javascript">
а он за приделами дива output. так что ничего я не убиваю.
PM MAIL   Вверх
$дмитрий
Дата 14.11.2011, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: 5
Всего: 45



При клике форма заменяется на новую, а обработчик связан со старой формой
Самый простой вариант решения: заменить
Код

function showResponse(responseText, statusText)  { 
$('#output').show();
}

на
Код

function showResponse(responseText, statusText)  { 
$('#output').show();
$('#myForm').submit(function() { 
    $(this).ajaxSubmit(options); 
    return false;
  });
}

PM MAIL   Вверх
ksnk
Дата 14.11.2011, 01:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



Цитата(Serious2008 @  13.11.2011,  22:44 Найти цитируемый пост)
Подожди обработчик событий, на сколько я понимаю у меня храниться в 

Хранится-то он хранится, а вот устанавливается он на элемент #myForm, который убивается ajax'ом и заменяется на другой с таким-же именем.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Serious2008
Дата 14.11.2011, 02:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 294
Регистрация: 28.1.2011

Репутация: нет
Всего: нет



$дмитрий, 

Твой вариант не помог, он всё равно без аякса обрабатывает. 

PM MAIL   Вверх
$дмитрий
Дата 14.11.2011, 02:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: 5
Всего: 45



Serious2008, дай линк посмотрю
PM MAIL   Вверх
ksnk
Дата 14.11.2011, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



imho, проще воспользоваться методом live
Код

$('#myForm').live('submit',function() { 
    $(this).ajaxSubmit(options); 
    return false;
  }); 




--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0520 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.