Lost OnChange после проверки формы - PullRequest
0 голосов
/ 06 июля 2010

Я использую codeigniter и при выборе раскрывающейся формы onchange работает, и я получаю второе поле в порядке (Страна-> Город).Когда я отправляю форму с ошибками, страница перезагружается с отображаемыми ошибками, но мой onchange перестает работать.Есть идеи о том, что происходит?Хм, вот что я делаю.Пользователь попадает на домашнюю страницу и заполняет форму, обмен работает.Затем пользователь отправляет форму с ошибкой, и я проверяю валидацию и загружаю новую страницу (регистр) с той же функцией обмена.Я попытался изменить имя функции (getLocal) на другое имя, но результат тот же.Пробовал использовать live. ("Change", getLocal) и результат тот же, стрельбы на странице реестра нет ...

 
function getLocal(){
    $("#city").load("home/ajaxlocal", {country: $(this).val()} );
   //alert($(this).val());

    return false;
}

..............

$js = 'id="country"';
    
    $(document).ready(function() {
    $("#country select").bind("change", getLocal);
        });
    
td echo form_label('Country :', $country); 
td id="country">echo form_dropdown('country', $country,$ct,$js);

1 Ответ

1 голос
/ 06 июля 2010

ЕСЛИ вы не перезагружаете страницу, но перезагружаете элементы с помощью AJAX, jquery не будет связываться с этими новыми элементами, если вы укажете их в функции ready ().

$(document).ready(function() {
    $("#country select").bind("change", getLocal);
});

Это загрузка этой загрузки- попробуйте использовать .live ()

http://api.jquery.com/live/

Этот метод является вариантом базового метода .bind () для присоединения обработчиков событий к элементам.Когда вызывается .bind (), элементы, на которые ссылается объект jQuery, привязывают обработчик;элементы, которые будут представлены позже, этого не делают, поэтому им потребуется еще один вызов .bind ().

...