2015-05-15 2 views
0

В приведенном ниже коде создается ползунок jQuery, который я использую на своем веб-сайте обзора Python/Django. Проблема в том, что начальное значение не задано правильно.Установка начального значения ползунка jQuery на 0

value: 0, похоже, просто управляет положением ползунка, когда страница загружена, на самом деле никакое значение не отображается в $("#slider-result") при загрузке страницы. Это должно быть показано 0.

Так что если value: 0 не устанавливает начальное значение 0, как это сделать?

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

slider_two.js

$('#submit').click(function() { 
    var username = $('#hidden').val(); 
    if (username == "") username = 0; 
    $.post('comment.php', { 
     hidden: username 
    }, function(return_data) { 
     alert(return_data); 
    }); 
}); 

$(".slider").slider({ 
    animate: true, 
    range: "min", 
    value: 0, 
    min: -100, 
    max: +100, 
    step: 1, 



//This updates the slider-result below the slider bar so the participant can see the rating they give 
    slide: function(event, ui) { 
     $("#slider-result").html((ui.value > 0 ? '+' : '') + ui.value); 



//This updates the hidden form field so I can submit the data using a form 
     if($(this).attr("id") == "one") 
      $("#hidden1").val((ui.value > 0 ? '+' : '') + ui.value); 
    } 
}); 

EDIT

Я добавил предлагаемое решение непосредственно в шаблон непосредственно над slider-result, но не похоже, чтобы сделать разницу. Я что-то упускаю?

Удаляется история и заставила все файлы перезагрузить с Command Shift R

Благодарности

<script> 
    ($function(){ 
     $("#slider-result").html('0'); 
     $("#hidden1").val('0'); 
    }); 
</script> 




<div id="slider-result"></div>         

<input type="hidden" name="slider_value" id="hidden1"/>  

      <script src="/static/survey/js/slider_two.js"></script> 
</div> 

ответ

1

Вы должны установить значение на странице загрузки, установка относится к самому слайдера не элемент, а если это не так объявленный где-либо, он не будет иметь никакой ценности. Либо в JQuery:

($function(){ 
    $("#slider-result").html('0'); 
    $("#hidden1").val('0'); 
}); 

или событие лучше непосредственно в шаблоне, поэтому без обработки на стороне клиента:

<div id="slider-result">0</div>         

<input type="hidden" name="slider_value" id="hidden1" value="0"/>  

      <script src="/static/survey/js/slider_two.js"></script> 
</div> 
+0

Привет Жюльен, я добавил свое решение в шаблон, см мой РЕД без результата. Я что-то упускаю? Спасибо – Deepend

+0

см. Edit, я думаю, что вы лучше установите его в свой html напрямую. Есть ли причина, почему это было бы лучше динамически? –

+0

Этот сэр - это простота. Я даже не думал об этом. Спасибо огромное! – Deepend

0

Проблема заключается в том, что DefaultValue является не реализована скрытых полей формы. Таким образом, у вас есть два варианта решения этой проблемы.

  1. Задайте значение при загрузке страницы, используя javascript, как сказал Жюльен.
  2. Используйте поле ввода текста со значением = 0 и CSS установлен в Dispaly: нет
Смежные вопросы