2014-01-16 3 views
0

Я использовал JQuery UI Range Slider и, наконец, смог записать цену (используя this plugin), когда была отправлена ​​форма. Однако, я нашел, что цена не была сохранена правильно. Он всегда был немного меньше или больше. Это ошибка?JQuery UI Range слайдер не сохранен правильно - ошибка

Вот мой HTML:

<div class="price-range"> 
    <div id="slider-range"></div> 
    <label id="min-amount">0</label><label id="max-amount">2,000,000</label> 
</div> 

И мой Jquery код:

  var sel = $.session.get("price_min"); 
      var sel2 = $.session.get("price_max"); 

      if (sel==null){ 
       $.session.set("price_min", 0); 

      } 
      if (sel2==null){ 
       $.session.set("price_max", 2000000); 

      } 
      $("#slider-range").slider({ 
       range: true, 
       min: 0, 
       max: 2000000, 
       step: 1000, 
       values: [ sel, sel2 ], 
       slide: function(event, ui) { 

        $("#min-amount").text(ui.values[ 0 ]); 
        $("#max-amount").text(ui.values[ 1 ]); 
        $.session.set("price_min", $("#slider-range").slider("values", 0)); 
        $.session.set("price_max", $("#slider-range").slider("values", 1)); 
       } 
      }); 

      $("#min-amount").text(sel); 
      $("#max-amount").text(sel2); 

Слайдер прекрасно работает. Просто, когда я выбрал мин: 238000/макс: 1556000, стало мин: 238000/макс: 1562000 после отправки формы. Это ошибка?

+0

$ .session? Есть ли плагин, о котором вы нам не рассказываете? –

+0

похоже на [плагин сессии] (https://github.com/AlexChittock/JQuery-Session-Plugin/blob/master/jquery.session.js) –

+0

Привет, да, я использую плагин сессии. – Alex

ответ

1

Есть несколько проблем, с вашим кодом попробовать

jQuery(function() { 
    var sel = $.session.get("price_min"); 
    var sel2 = $.session.get("price_max"); 

    if (sel == null) { 
     //if value is null initialize with default values 
     sel = 0; 
     $.session.set("price_min", sel); 
    } 
    if (sel2 == null) { 
     sel2 = 2000000; 
     $.session.set("price_max", sel2); 

    } 

    $("#slider-range").slider({ 
     range: true, 
     min: 0, 
     max: 2000000, 
     step: 1000, 
     values: [sel, sel2], 
     slide: function (event, ui) { 
      $("#min-amount").text(ui.values[0]); 
      $("#max-amount").text(ui.values[1]); 
     }, 
     //use stop event to set the session values 
     stop: function (event, ui) { 
      //use ui.values to access the value, you were using the setter method 
      $.session.set("price_min", ui.values[0]); 
      $.session.set("price_max", ui.values[1]); 
     } 
    }); 

    $("#min-amount").text(sel); 
    $("#max-amount").text(sel2); 
}) 

Демо: Fiddle

+0

Блестящий, он отлично работает. Спасибо, кучи. – Alex

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