2013-07-02 1 views
0

Я использую следующий ajax/jquery/php, чтобы вытащить данные в соответствующие поля. После этого я использую код, приведенный ниже, чтобы сбросить меню выпадающего меню выбора, если пользователь вносит изменения в предыдущие поля выбора. Странная вещь, которая происходит, заключается в том, что если пользователь меняет раскрывающийся список #customer, он сбрасывает все квадраты qty и все вычисления linetotal, а также раскрывающиеся списки акций, но копирует и вставляет одну и ту же функцию в раскрывающийся список #vehicle для некоторого нечетного Причина: он очищает текстовое поле qty, очищает линетографический расчет, но оставляет меню выбора выпадающего списка, вместо того, чтобы переустанавливать их по умолчанию, это то же самое, что WORKS в раскрывающемся списке #customer, чтобы сбросить все изменения.JQuery используется для сброса выпадающего меню выбора, работающего над одним, но не с другим с тем же кодом

<script type="text/javascript" charset="utf-8"> 
$(document).ready(function() { 
    $('#customer').on('change', function() { 
     $('#vehicle').html("<option value=''>Select</option>"); // add this on each call then add the options when data receives from the request 
     $.getJSON('select.php', { 
      customerId: $(this).val() 
     }, function (data) { 
      var options = ''; 
      for (var x = 0; x < data.length; x++) { 
       options += '<option value="' + data[x]['id'] + '">' + data[x]['reg'] + ' - ' + data[x]['make'] + ' - ' + data[x]['model'] + '</option>'; 
      } 
      $('#vehicle').html(options); 
      $("select").select2(); 
     }); 
    }); 


    $('#customer').on('change', function() { 
     $('#qty1').val(''); 
     $('#linetotal1').text(''); 
     $("#stock1").val($("#stock1 option:first").val()); 
     $('#qty2').val(''); 
     $('#linetotal2').text(''); 
     $("#stock2").val($("#stock2 option:first").val()); 
     $('#qty3').val(''); 
     $('#linetotal3').text(''); 
     $("#stock3").val($("#stock3 option:first").val()); 
     $('#qty4').val(''); 
     $('#linetotal4').text(''); 
     $("#stock4").val($("#stock4 option:first").val()); 
     $('#qty5').val(''); 
     $('#linetotal5').text(''); 
     $("#stock5").val($("#stock5 option:first").val()); 
     $('#qty6').val(''); 
     $('#linetotal6').text(''); 
     $("#stock6").val($("#stock6 option:first").val()); 
    }); 

    $('#vehicle').on('change', function() { 
     $('#qty1').val(''); 
     $('#linetotal1').text(''); 
     $("#stock1").val($("#stock1 option:first").val()); 
     $('#qty2').val(''); 
     $('#linetotal2').text(''); 
     $("#stock2").val($("#stock2 option:first").val()); 
     $('#qty3').val(''); 
     $('#linetotal3').text(''); 
     $("#stock3").val($("#stock3 option:first").val()); 
     $('#qty4').val(''); 
     $('#linetotal4').text(''); 
     $("#stock4").val($("#stock4 option:first").val()); 
     $('#qty5').val(''); 
     $('#linetotal5').text(''); 
     $("#stock5").val($("#stock5 option:first").val()); 
     $('#qty6').val(''); 
     $('#linetotal6').text(''); 
     $("#stock6").val($("#stock6 option:first").val()); 
    }); 

});  
</script> 

enter image description here

так, если я изменю #vehicle выбрать это очищает и кол-во линий общей, но оставляет запас, как это было, если я меняю верхний подберет #customer он очищает выбор просто отлично , используя ту же самую функцию ......

enter image description here

все из Selects используют Jquery плагин называется ВЫБ.2 КСТАТИ.

ответ

0

Я предполагаю, что #vechicle - это тег select.

$('#vehicle').html(options); 

В этой строке вы превращаете его в тег опции, дважды проверяете HTML с помощью firebug.

Вы можете сделать что-то вроде этого, если вы хотите добавить значение в вашей выберите тег

$('#vehicle').append(options); 
+0

да вот правильный –

+0

К сожалению, только что видел, что я ищу для '$ («выбрать»). ВЫБ.2 (); ' –

+0

Код для Select2 перед запуском ajax. –

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