NoUISlider 与输入绑定
NoUISlider Bind with Input
我正在使用 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 的更新事件被触发,这导致输入回到其旧值。根据 nouislider set
事件的文档,不应触发 Update
事件。我错过了什么。
JS Fiddle: https://jsfiddle.net/rehanazher/8bcx0uvp/
为滑块设置值时删除“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]);
});
我正在使用 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 的更新事件被触发,这导致输入回到其旧值。根据 nouislider set
事件的文档,不应触发 Update
事件。我错过了什么。
JS Fiddle: https://jsfiddle.net/rehanazher/8bcx0uvp/
为滑块设置值时删除“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]);
});