Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 多个范围输入(滑块)的值赢得';不变_Javascript_Html - Fatal编程技术网

Javascript 多个范围输入(滑块)的值赢得';不变

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

我需要实现一个只在所有范围输入(5个滑块)都有最大值时触发的功能。我试着这样做:

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);
    }


}