Javascript 多个范围输入(滑块)的值赢得';不变
我需要实现一个只在所有范围输入(5个滑块)都有最大值时触发的功能。我试着这样做:Javascript 多个范围输入(滑块)的值赢得';不变,javascript,html,Javascript,Html,我需要实现一个只在所有范围输入(5个滑块)都有最大值时触发的功能。我试着这样做: let ranges = document.getElementsByClassName('range'); for (let i = 0; i<ranges.length; i++) { ranges[i].addEventListener('change', function() { this.setAttribute('value', this.valu
let ranges = document.getElementsByClassName('range');
for (let i = 0; i<ranges.length; i++) {
ranges[i].addEventListener('change', function() {
this.setAttribute('value', this.value);
});
let rangeValue = ranges[i].getAttribute('value');
console.log(rangeValue);
}
带有函数的我的脚本在更改时被触发:
function launching() {
// SPRAWDZANIE CZY GUZIKI SĄ WŁĄCZONE
let czeks = document.getElementsByClassName('check');
liczba = 0;
eluwina = 0;
for (let i = 0; i < czeks.length; i++) {
if (czeks[i].checked) {
liczba ++;
console.log(liczba);
}
} // KONIEC SPRAWDZANIA GUZIKӌ
// SPRAWDZANIE SLAJDERÓW
let ranges = document.getElementsByClassName('range');
for (let i = 0; i<ranges.length; i++) {
ranges[i].addEventListener('change', function() {
this.setAttribute('value', this.value);
});
let rangeValue = ranges[i].getAttribute('value');
console.log(rangeValue);
}
}
函数启动(){
//斯普拉德扎尼·扎尼·古齐基·斯沃德扎尼
设czeks=document.getElementsByClassName('check');
liczba=0;
eluwina=0;
for(设i=0;i 对于(设i=0;i您不需要在onchange
函数中添加change
事件侦听器。当滑块被更改时,该函数已经运行,您应该在那里执行您想要的操作。按照您的操作方式,您第一次添加事件侦听器,并且该事件侦听器直到下一次事件发生时才会运行。)发生
无需使用ranges[i].getAttribute('value')
。这用于滑块的初始值。当用户交互时,可以使用ranges[i].value
获取当前值
函数启动(){
让ranges=document.getElementsByClassName('range');
if(Array.from(ranges).every(range=>range.value==range.getAttribute(“max”)){
console.log(“所有范围都处于最大值”);
}
}
据我所知,“请调试我的代码”与堆栈溢出无关。您是否有特定的编程问题?为什么要在onchange
调用的函数中添加事件侦听器?您没有检查最大值的代码。这有什么意义:this.setAttribute('value',this.value));
?为什么不直接使用范围[i].value
作为范围值
?如果没有事件侦听器,滑块值永远不会更新,consol.log总是显示>(5)50作为范围输入的值,非常感谢Barmar先生:)
function launching() {
// SPRAWDZANIE CZY GUZIKI SĄ WŁĄCZONE
let czeks = document.getElementsByClassName('check');
liczba = 0;
eluwina = 0;
for (let i = 0; i < czeks.length; i++) {
if (czeks[i].checked) {
liczba ++;
console.log(liczba);
}
} // KONIEC SPRAWDZANIA GUZIKӌ
// SPRAWDZANIE SLAJDERÓW
let ranges = document.getElementsByClassName('range');
for (let i = 0; i<ranges.length; i++) {
ranges[i].addEventListener('change', function() {
this.setAttribute('value', this.value);
});
let rangeValue = ranges[i].getAttribute('value');
console.log(rangeValue);
}
}