我使用noUISlider允许用户输入号码。它运行良好,但现在我想添加一个输入,以便能够更新nouislider的值,而不需要拖动它。但有些我却无法让它发挥作用。下面是我的代码的外观:
<div class="col-sm-1">
<input type="number" min="1" max="24" step="1" class="form-control input-sm" name="pointstopredicts" id="pointstopredicts" value="10" required="true" />
</div>
<div class="col-sm-9">
<div id="rangesliderPP"></div>
</div>下面是我的JS代码:
<script>
var skipSlider3 = document.getElementById('rangesliderPP');
var pointstopredicts = document.getElementById('pointstopredicts');
noUiSlider.create(skipSlider3, {
start: [ 6 ],
connect: 'lower',
range: {
'min': 1,
'max': 24
}
});
skipSlider3.noUiSlider.on('update', function( values, handle ) {
var value = values[handle];
pointstopredicts.value = Math.round(value);
});
pointstopredicts.addEventListener('change', function(){
skipSlider3.noUiSlider.set([null, this.value]);
});
</script>当我更改输入值时,我可以看到更改事件触发器,但也会触发nouislider的update事件,从而使输入返回到原来的值。根据nouislider的文档,set事件不应该触发Update事件。我是不是错过了什么。
发布于 2018-06-10 20:33:12
将值设置为滑块时删除“null”。
应该是这样的:
noUiSlider.create(skipSlider3, {
start: [ 6 ],
connect: [true,false],
step: 1,
range: {
'min': 1,
'max': 24
}
});
skipSlider3.noUiSlider.on('update', function( values, handle ) {
var value = values[handle];
pointstopredicts.value = Math.round(value);
});
pointstopredicts.addEventListener('change', function(){
skipSlider3.noUiSlider.set([ this.value]);
});https://stackoverflow.com/questions/50783433
复制相似问题