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

Поиск:

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


Опытный
**


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

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



Есть вот такой вот код. Почему-то не срабатывает аякс на форму.
Код

<head>
<script src="img/lib.js" language="javascript" type="text/javascript"></SCRIPT>
<script src="img/jquery.js" language="javascript" type="text/javascript"></SCRIPT>
<script src="img/jquery.form.js" language="javascript" type="text/javascript"></SCRIPT>
</head>
<form id="myForm" method="post" action="/poll-random.html">
<input type=submit value=Отправить>
</form>
<div id="output"></div>

<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)  { 
$('#myForm').hide();


}
</script>

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


Эксперт
***


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

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



На что ругается?
PM MAIL   Вверх
Serious2008
Дата 10.11.2011, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



не на что не ругается, просто берёт и открывает страницу и всё.
PM MAIL   Вверх
$дмитрий
Дата 10.11.2011, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Если уверен что консоль ошибок пустая, то отлаживай по шагам:

1. Убедись что событие перехвачено
Код

$('#myForm').submit(function() { 
    alert('step one - ok');
   //$(this).ajaxSubmit(options); 
    return false;
  }); 

PM MAIL   Вверх
Serious2008
Дата 10.11.2011, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



$дмитрий, 
тут отладка немного усложняется, тем что эту форму выводит другая форма и всё аяксом.

И да не перехватывает действие.

Это сообщение отредактировал(а) Serious2008 - 10.11.2011, 23:35
PM MAIL   Вверх
$дмитрий
Дата 10.11.2011, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата

тут отладка немного усложняется, тем что эту форму выводит другая форма и всё аяксом.

Так выясняется наличие еще какой-то формы smile  в первом сообщении я ее не вижу

Добавлено @ 23:52
Цитата

тем что эту форму выводит другая форма и всё аяксом.

Если ты, на страницу, пытаешься аяксом подгрузить какой-то JS-код, и хочешь чтобы он сразу отработал, он работать в большинстве случаев не будет

Это сообщение отредактировал(а) $дмитрий - 10.11.2011, 23:53
PM MAIL   Вверх
Serious2008
Дата 11.11.2011, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



$дмитрий, 
Вот как там сейчас.

Код

<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 id="output">111</div>

<br><p align=center><a href="/poll-stat-15.html">Статистика голосований</a></p>

<script type="text/javascript">

$(document).ready(function(){



  var options = { 



    target: "#output",

    beforeSubmit: showRequest,

    success: showResponse, 

    timeout: 3000

  };

  

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

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

    $(this).ajaxSubmit(options); 



    return false;

  }); 



});



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

function showRequest(formData, jqForm, options) { 



    var queryString = $.param(formData); 





    return true; 

} 

 

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

function showResponse(responseText, statusText)  { 

$('#myForm').hide();

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



}

</script>

<div id='output'></div>


По итогу выполнения. Вылазит вот эта форма.

Код

<form id="myForm" method="post" action="/poll-random.html">
<input type=submit value=Следующий опрос>
</form>
<div id="output"></div>


Я на её навешивал часть с яваскриптом, и ничего не получилось
PM MAIL   Вверх
Lols
Дата 11.11.2011, 01:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



И не должно было получиться, если я правильно понимаю. Или нет?
PM MAIL   Вверх
Serious2008
Дата 11.11.2011, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Lols, 
Сверху на странице подключены яваскрипты. И первый аяксовский запрос выполняется правильно.
А вот уже потом после появления новой формы, ничего не получается.
PM MAIL   Вверх
$дмитрий
Дата 11.11.2011, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата

А вот уже потом после появления новой формы, ничего не получается. 

События нужно навешивать после того как получили новую форму
PM MAIL   Вверх
Serious2008
Дата 11.11.2011, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



$дмитрий, 
аякс нормально срабатывает. Но второй немного неправильно, он посылает фиг знает куда.  Должен был на  /poll-random.html, а посылает. Вообще куда-то лесом.
Код

<form id="myForms" method="post" action="/poll-random.html">
<input type=submit value=Отправить>
</form>
<script type="text/javascript">
$(document).ready(function(){
 
  var options = {
 
        target: "#outputs",
    beforeSubmit: showRequest,
    success: showResponse,
    timeout: 3000
  };
 
 
  $('#myForms').submit(function() {
 
   $(this).ajaxSubmit(options);
    return false;
  });
 
});
 
// вызов перед передачей данных
function showRequest(formData, jqForm, options) {
 
    var queryString = $.param(formData);
 
 
    return true;
}
 
// вызов после получения ответа
function showResponse(responseText, statusText)  {
$('#myForms').hide();
 
 
}
</script>
 
<div id="outputs"></div>

Может у кого есть пример работы аякса. Где несколько разных блоков будет открывать. Т.е. вначале один, потом второй, потом третий.

Это сообщение отредактировал(а) Serious2008 - 11.11.2011, 20:46
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




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


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

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