2016-02-12 2 views
0

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

Второй должен делать то же самое, что все отлично работает. Хранилище сохраняется, но выпадающее меню не заполняется? Причина в том, что он не отображается в выпадающем меню, потому что параметры не находятся в html?

Также существует более эффективный способ объединения этих двух. У меня есть набор из 6 выпадающих списков, все зависит от другого, что я хотел бы сделать то же самое.

<script> 
$(function() { 
    $('#vehic_sel_model').change(function() { 
     sessionStorage.setItem('model', this.value); 

    }); 

    if(sessionStorage.getItem('model')){ 
     $('#vehic_sel_model').val(sessionStorage.getItem('model')); 
     $("#vehic_sel_year").load("/v/vehicle-selection/cache/" + sessionStorage.getItem('model') + ".txt"); 
    } 
}); 
</script> 
<script> 
$(function() { 
    $('#vehic_sel_year').change(function() { 
     sessionStorage.setItem('year', this.value); 

    }); 

    if(sessionStorage.getItem('year')){ 
     $('#vehic_sel_year').val(sessionStorage.getItem('year')); 
     $("#vehic_sel_trim").load("/v/vehicle-selection/cache/" + sessionStorage.getItem('year') + ".txt"); 
    } 
}); 
</script> 
+1

Можете ли вы создать JsFiddle этого, который реплицирует проблему? –

+0

Я не могу, потому что значения второго параметра не указаны в html. Они заполняются из текстового файла после того, как первый был выбран. –

+1

JsFiddle предоставляет методы имитации вызовов Ajax: http://doc.jsfiddle.net/use/echo.html. Вы также можете указать источник jsfiddle.com на своем сервере. Если эти методы непригодны для использования, это, по крайней мере, будет полезно для просмотра текстовых файлов, которые извлекаются. –

ответ

0

Я понял, как это сделать, когда вытягивать из текстовых файлов. Мне пришлось привязать сеансотражения.GetItem к .load:

$(function() { 
     $('#vehic_sel_model').change(function() { 
      sessionStorage.setItem('model', this.value); 

     }); 

     $('#vehic_sel_year').change(function() { 
      sessionStorage.setItem('year', this.value); 

     if(sessionStorage.getItem('model')){ 
      $('#vehic_sel_model').val(sessionStorage.getItem('model')); 
      $("#vehic_sel_year").load("/v/vehicle-selection/cache/" + sessionStorage.getItem('model') + ".txt", function(){ 
       $('#vehic_sel_year').val(sessionStorage.getItem('year')); 
     }); 
1

Попробуйте это:

if(sessionStorage.getItem('year')){ // <-- Problem here. You've forgotten if statement bracket. 
    $('#vehic_sel_year').val(sessionStorage.getItem('year')); 
    $("#vehic_sel_trim").load("/v/vehicle-selection/cache/" + sessionStorage.getItem('year') + ".txt"); 
} 
+1

Спасибо, что указали это в моем коде здесь ... Но это на самом деле то, что есть на моем сайте. У меня все еще такая же проблема –