2014-03-20 2 views
0

настоящее время у меня это ...Добавьте второй триггер функции

var phpArray = <?php echo json_encode($tourdistance['tourdistance']); ?>; 
$('#tour').on('change', function (event) { 
$('#distance').val(phpArray[$(this).val()]); 
}); 

... обновляя входной элемент «расстояние», когда выпадающий «тур» будет изменен. Когда форма отправляется с ошибками проверки, у меня установлен HTML/PHP, чтобы он запоминал выбор пользователей для этого поля. Тем не менее, вышеупомянутое не запускается, если они не повторно выбирают этот выпадающий элемент. Это плохой пользовательский интерфейс, потому что визуально он будет выглядеть правильно.

Как я могу обновить его при загрузке страницы или иным образом настроить так, чтобы «расстояние» сохранялось, даже после загрузки страницы?

Вот страница ...

http://antipodecycling.com/donate-support/sponsor-us/

Текущее решение:

var phpArray = <?php echo json_encode($tourdistance['tourdistance']); ?>; 

$(document).ready(function(){ 
    function updateSelect(){ 
     var selectInput = $("#tour"); 
     var distance = phpArray[selectInput.val()]; 
     $('#distance').val(distance); 
    } 
    updateSelect(); 

    function updatePledge(){ 
     var pledge = "<?php echo set_value('pledge'); ?>"; 
     $('#pledge').val(pledge); 
    } 
    updatePledge(); 


    $("#tour").on('change', function(){ 
     updateSelect(); 
    }); 
}); 

ответ

1

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

$(document).ready(function(){ 

    function updateSelect(){ 

     alert('update select fired'); 

     var selectInput = $("#tour"); 

     var distance = phpArray[selectInput.val()]; 
     alert(distance); 

     $('#distance').val(distance); 
     $('#pledgedistance').html(distance); 
    } 

    updateSelect(); 

    $("#tour").on('change', function(){ 
     updateSelect(); 
    }); 
}); 
+0

К сожалению, это, похоже, нарушает оба действия. –

+0

Вы, кажется, опустили массив массива tourdistance –

+0

hmm..если вы отправили свой HTML-код, может помочь –

1

Как можно также обновить его на загрузке страницы

Just trigger событие на странице load:

var phpArray = <?php echo json_encode($tourdistance['tourdistance']); ?>; 
$('#tour').on('change', function() { 
    $('#distance').val(phpArray[$(this).val()]); 
}).change(); 
+0

Я использую проверку формы CodeIgniter. Знаете ли вы, что это полная загрузка страницы для недопустимого поля/формы? Похоже, но код выше не срабатывает. «Расстояние» не установлено. –

+0

т. Е. Он работает по-прежнему, с понижающим изменением, но не после нажатия кнопки отправки формы и загрузки ошибок проверки. –

+0

Я не знаю про CodeIgniter, извините. Разве его документы не говорят, как это работает? – Bergi

Смежные вопросы