Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Отправка формы загрученной через ajax (https://javascript.ru/forum/jquery/18512-otpravka-formy-zagruchennojj-cherez-ajax.html)

WooDFox 04.07.2011 16:22

Отправка формы загрученной через ajax
 
Есть документ, в который по запросу подгружается форма. Метод serialize не собирает с нее данные. Почему?

<script type="text/javascript" src="js/jquery.js"></script> // Версия 1,6,2
<script type="text/javascript" src="js/jquery.simplemodal.js"></script> // 1.4.1


$.ajax({   
	url: "ФАЙЛ.php?action="+action+"&id="+id+"&name="+name,   
	cache: false,   
	success: function(html){   
		$("#ModalContent").html(html); // Вставили полченный запрос (форму) в див
		$("#ModalWin").modal(); // Отобразили див с помощью jQuery.SimpleModal
	}   
});


<form action="" method="post" id="formModal">
	<input type="hidden" name="action" value="add" />
	<input type="hidden" name="tariff_id" value="N" />
	<input type="hidden" name="tariff_name" value="E" />
</form>


Загружается в див некая форма с id "formModal" и с ней же следующий код...

function SendForm_Modal () {
	var string = $("#formModal").serialize();
	$.post("config/tariff_zone_fn.php", string, function(data) {
		if (data == "ok") {
			// Обрабатываем ответ
		} else {
			// Обрабатываем ответ
		}
	});
	return false;
};
// Код сокращен


При вызове функции "SendForm_Modal" все действия происходят, но метод serialize() выдает пустую строку. Что не так?

WooDFox 04.07.2011 16:52

Ещё непонятно то, что таким же методом реализована авторизация на другом моем проекте, там всё работает. Версия JQ и SM одинаковая...

WooDFox 04.07.2011 17:03

Если добавляю аналогичную форму в основной документ, serialize срабатывает, но, естественно, с данными начальной формы, а не загруженной аяксом.

Пожалуйста, помогите разобраться.

melky 04.07.2011 17:07

может, на странице есть еще один элемент с id="formModal" ?

WooDFox 04.07.2011 17:31

Цитата:

Сообщение от melky (Сообщение 111729)
может, на странице есть еще один элемент с id="formModal" ?

Уже всё поперелопатил - нет одинаковых элементов.
Есть другая форма с id "form", но я не думаю что в этом проблема. Имя пробовал менять, не помогает(

melky 04.07.2011 17:47

проверь, та ли эта форма. мне кажется, что всё же нет

вывод смотреть в FireBug(firefox), или инструменты веб-разработчика в семействе вебкитов ( я думаю, ты знаешь, где смотреть)
console.log( document.getElementById("formModal") );

WooDFox 04.07.2011 17:49

Пока пытался выловить в чем баг, обнаружил следующее:
В IE9 и Chrome12 форма прекрасно отрабатывает.
В Опере 11,11 и ФФ4 форма не сериализится вообще - серверу не передается ни один из параметров
В Опере 11,50 и ФФ5 передаются только значения полей hidden, обычные поля не пердаются.

Точно такое же решение на другом портале, в этих же браузерах работает безупречно... Пожалуйста, помогите!

WooDFox 04.07.2011 17:51

Цитата:

Сообщение от melky (Сообщение 111740)
проверь, та ли эта форма. мне кажется, что всё же нет

вывод смотреть в FireBug(firefox), или инструменты веб-разработчика в семействе вебкитов ( я думаю, ты знаешь, где смотреть)
console.log( document.getElementById("formModal") );

Да, форма однозначно та же. (См. пред. пост)
Смотрел и в файрбаге, и в драгонфлай и в гуглохромовском отладчике.

При этом, файрбаг показывает: пустой пост запрос
драгонфлай: пустой пост, но при этом до получающего скрипта доходить часть информации (это как?)
гуглохром шлет всё как миленький

Файрбаг:
>>> console.log( document.getElementById("formModal") );
<form id="formModal" method="post" action="">

WooDFox 04.07.2011 17:53

Могу дать доступ напрямую в интерфейс, там все равно пока ничего критичного нет...

WooDFox 04.07.2011 18:02

В общем, если кто может помочь:
http://demo.woodfox.ru/admin/
test / test

Тарификация > Тарифные планы > Базовый > Добавить тарифную зону
Вот тут проблема.

Заранее благодарю.

ЗЫ: Все файлы в единой кодировке.

melky 04.07.2011 18:17

а нука

почему форма такая???

<form action="" method="post" id="formModal"></form>
<input type="hidden" name="action" value="add">
<input type="hidden" name="tariff_id" value="5">
<input type="hidden" name="tariff_name" value="Базовый">


опа, оливье, называется :D

nikita.mmf 04.07.2011 18:21

неправильно построен html:
<table><form>

переделайте на <form><table> или еще как-нибудь

WooDFox 05.07.2011 09:15

Цитата:

Сообщение от melky (Сообщение 111748)
а нука

почему форма такая???

<form action="" method="post" id="formModal"></form>


опа, оливье, называется :D


Эммм Это ты где такое увидел? Странно, но такого в коде точно нет.

WooDFox 05.07.2011 09:16

Цитата:

Сообщение от nikita.mmf (Сообщение 111749)
неправильно построен html:
<table><form>

переделайте на <form><table> или еще как-нибудь

Спасибо, так заработало! Буду знать, что форму надо держать снаружи таблицы. Спасибо.
Карму апнул

nikita.mmf 05.07.2011 11:31

WooDFox,
Цитата:

Цитата:

Сообщение от WooDFox
Сообщение от melky
а нука

почему форма такая???

<form action="" method="post" id="formModal"></form>


опа, оливье, называется


Эммм Это ты где такое увидел? Странно, но такого в коде точно нет.
melky, показал вам как интерпритирует ваш html браузер

WooDFox 05.07.2011 14:51

Цитата:

Сообщение от nikita.mmf (Сообщение 111749)
неправильно построен html:
<table><form>

переделайте на <form><table> или еще как-нибудь

Цитата:

Сообщение от nikita.mmf (Сообщение 111831)
WooDFox,

melky, показал вам как интерпритирует ваш html браузер

Во как. Ещё раз благодарю!


Часовой пояс GMT +3, время: 20:55.