将jQuery滑块的初始值设置为0

时间:2015-05-15 19:18:33

标签: javascript jquery jquery-ui

下面的代码创建了一个jQuery滑块,我在Python / Django调查网站中使用它。问题是初始值未正确设置。

value: 0似乎只是在加载页面时控制滑块的位置,实际上在加载页面时$("#slider-result")中没有显示任何值。这应该显示为0。

因此,如果value: 0未将初始值设置为0,我该怎么做?

问题在于,如果用户在不移动滑块的情况下提交了survyform,则没有值,甚至没有记录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);
    }
});

修改

我将建议的解决方案直接添加到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>

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

问题是对于隐藏的表单字段,defaultValue 未实现。所以你有两种方法可以解决这个问题。

  1. 使用javascript设置页面加载的值,如Julien上面所述。
  2. 使用值为0的文本输入字段,并将CSS设置为显示:无