我正在使用Jquery旋钮,输入值通过滑块更改。
window.onload = function(){
var elements=document.querySelectorAll('input[type=range]')
for(var i = 0; i < elements.length; i++){
elements[i].addEventListener('change',calcul , false);
}
}
function calcul(){
var elements = document.querySelectorAll('input[type="range"]')
var len = 0
var buf = 0
for(var i=0;i<elements.length;i++) {
if(elements[i].parentNode.parentNode.style.display != 'none'){
buf += parseInt(elements[i].value)
len++
}
}
buf = len === 0 ? 0 : buf/len
document.getElementById("knob").value=buf;
$("#knob").trigger("change");
}
现在我要围绕&#34; buf&#34;变量为1十进制,我试图使用toFixed和Math.round .... 但我不能让它发挥作用,有人可以帮助我吗?
编辑:我现在使用了这个,如果我使用console.log一切顺利。
buf = len === 0 ? 0 : buf/len;
gem_cijfer = buf.toFixed(1);
document.getElementById("knob").value=gem_cijfer;
document.getElementById("form_knob").value=gem_cijfer;
$("#knob").trigger("change");
示例问题,在console.log中显示1.7。但是在Jquery Knob的输入字段中它显示1.7000000000000002。见下图。
现在我该如何解决这个问题
答案 0 :(得分:0)
我不明白为什么.toFixed
和Math.round
无法正常工作,但我们可以考虑替代方案,如果您愿意像字符串一样处理它。
CheckThis
function RoundToOne(val)
{
var length =val.indexOf('.');
var newVal= val.substring(0,length+2);
return newVal;
}
别忘了添加验证
修改强>
我不认为你的问题是.toFixed
和Math.round
与你的旋钮
检查这些关于jQuery Knob的链接
JQuery Knob display number change