Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Подгрузка формы (https://javascript.ru/forum/jquery/5048-podgruzka-formy.html)

Zilog 11.09.2009 03:21

Подгрузка формы
 
Есть форма, на ней несколько выпадающих списков.
В одном из них выбираем пункт, выполняется код:

$('#cityID').change(function(){
	$.get(......actions.php',
			 {langID:$('#langID').val(),cityID:$('#cityID').val()}, function (data) { $("#search").html(data); });

	$("#searchForm").attr("action",$('#urlAction').val()+'?'+$("#searchForm").formSerialize());
});


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

Всё работет, но ровно один раз. После обновления форма перестает реагировать на действия.

Подскажите, в чем тут дело, а ещё лучше - как исправить. Я в этом деле чайник (заварочный :) )

зы. в первый раз форма выводится ровной той же функцией, к которой происходит обращение впоследствии из скрипта.

e1f 11.09.2009 16:12

А бинд на новую форму кто будет ставить, добрый дядя, а? Вариантов 2: 1. Новый бинд.
2. live-events

Zilog 11.09.2009 20:27

Профессор, во-первых - пасибо.
Во-вторых, с jquery я дело имею неделю, и толком ещё ничего не понял, хотя про live немного почитал: сбытие change не поддерживает (а мне именно оно нужно).

А что сделать с биндом? Может ты и есть тот добрый дядя, который подскажет? ;)

e1f 14.09.2009 13:53

Вротмненоги, сначала даже не понял, кому это -- "Профессор" :) Меньше флудить надо мне, видимо ;) Если еще актуально, то как-то так (вот только там ли $('#searchForm').attr(...), где нужно, и не стоит ли его перенести в onSuccess?):
function init_new_form(){
    $.get('/actions.php', {
        langID: $('#langID').val(),
        cityID: $('#cityID').val()
    }, function (data) {
        $('#search').html(data);
        $('#cityID').change(init_new_form);
    });
    $('#searchForm').attr('action', $('#urlAction').val()+'?'+$('#searchForm').formSerialize());
});
$('#cityID').change(init_new_form);


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