Опция JS on change select заполняется другим скриптом

0

Я заполняю форму выбора, используя скрипт из базы данных. Теперь то, что я хочу сделать, это то, что если пользователь меняет пример, выбирает совпадение 1, тогда я запустил что-то в другом php файле, чтобы заполнить div деталями из соответствия 1. Если я не заполню варианты выбора сценарием, он отлично работает, Хотя, когда я использую скрипт, параметры есть правильно, но при изменении ничего не происходит.

JS на заголовке

function populateSelect(){
    var load = $.get('popRoundSel.php',{gameNo:"<?php echo $_POST['gameNo']; ?>"});
    $(".round").html('Refreshing');
    load.error(function() {
      console.log("Mlkia kaneis");
      $(".round").html('failed to load');
      // do something here if request failed
    });
    load.success(function( res ) {
      console.log( "Success" );
      $(".round").html('<select id="roundselect"><option>----</option>'+res+'</select>');
    });
    load.done(function() {
      console.log( "Completed" );
    });
}
$(document).ready(function()
    {
        $('#roundselect').change(function()
        {
            var selected = $(this).find(':selected').html();
            $.post('roundinfo_sc.php', {'beverage': selected}, function(data) {
              $('#result').html(data);
            });
        }); 
    });

Код страницы

<h2>Select a round to see more details</h2>
<div class="round">
<script>
populateSelect();
</script>
</div>
<div id="result">    
</div>
  • 0
    один раз в populateSelect(); работает, я <select id="roundselect"><option>----</option>'+res+'</select> div с <select id="roundselect"><option>----</option>'+res+'</select>
Теги:

1 ответ

0
Лучший ответ

Проблема в том, что когда вы добавляете новый select, вы теряете все события, которые вы связываете с ним.

Поэтому вы должны поместить $('#roundselect').change(function()... внутри функции succes load:

load.success(function( res ) {
      console.log( "Success" );
      $(".round").html('<select id="roundselect"><option>----</option>'+res+'</select>');
   $('#roundselect').change(function()
        {
            var selected = $(this).find(':selected').html();
            $.post('roundinfo_sc.php', {'beverage': selected}, function(data) {
              $('#result').html(data);
            });
        });  

 });
  • 0
    Теперь я понимаю, спасибо, это сработало
  • 0
    Рад, что вы решили это ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню