下面的代码创建了一个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>
答案 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 未实现。所以你有两种方法可以解决这个问题。