Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.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计算onLoad和onChange?_Javascript_Html - Fatal编程技术网

如何使用JavaScript计算onLoad和onChange?

如何使用JavaScript计算onLoad和onChange?,javascript,html,Javascript,Html,我试图在页面加载和选择器更改时进行一些计算,但只能让它们单独工作 现在,计算仅在窗口加载时加载,而不是在选择器更改时加载。没有窗口。onload的onChange工作正常 因此,我的目标是在选择id=“portioner”更改和页面加载时加载计算partments*component amount,在这种情况下p*0.5 <ul> <strong><p class="litop" id="tightermobilete

我试图在页面加载和选择器更改时进行一些计算,但只能让它们单独工作

现在,计算仅在窗口加载时加载,而不是在选择器更改时加载。没有
窗口。onload
onChange
工作正常

因此,我的目标是在选择
id=“portioner”
更改和页面加载时加载计算
partments*component amount
,在这种情况下
p*0.5

            <ul>
            <strong><p class="litop" id="tightermobiletext">Hur många portioner? »</p></strong>
                <p class="litop"><select id="portioner" onChange="Calculate();">
          <option value=1>2 port</option>
          <option value=2>4 port</option>
          <option value=3>6 port</option>
          <option value=4>8 port</option>
          <option value=5>10 port</option>
          <option value=6>12 port</option>
                 </select></p>

            <li><label id="lblRes1"></label> Gul lök</li>
        </ul>




<script language="javascript">

    function Calculate() {
        var p = document.getElementById('portioner').value;
        var result1 = p * 0.5;document.getElementById('lblRes1').innerHTML = result1;
}

    window.onload = function() {
        document.getElementById('portioner').onchange = Calculate();
    }
</script>

    你为什么要搬家?»

    2端口 4端口 6端口 8端口 10端口 12端口

  • 古尔洛克
函数计算(){ var p=document.getElementById('portioner').value; var result1=p*0.5;document.getElementById('lblRes1')。innerHTML=result1; } window.onload=函数(){ document.getElementById('portioner').onchange=Calculate(); }
但是,建议避免使用事件属性,并立即使用addEventListener

window.addEventListener('load', function(){
    document.getElementById('portioner').addEventListener('change', Calculate);
    Calculate();
});
但是,建议避免使用事件属性,并立即使用addEventListener

window.addEventListener('load', function(){
    document.getElementById('portioner').addEventListener('change', Calculate);
    Calculate();
});
将onload=“Calculate()”位放入body标记以及标识为“portioner”的select标记中

顺便说一句,函数标识符通常以小写字母开头。 因此,
calculate()
看起来比
calculate()

更好,将onload=“calculate()”位放在主体标记以及标识为“portioner”的select标记中

顺便说一句,函数标识符通常以小写字母开头。
因此
calculate()
看起来比
calculate()

更好。另外,当您将函数绑定到事件处理程序时,您会得到
对象。你可以在这样的函数中使用

window.addEventListener('load', function(){
   let element = document.getElementById('portioner')
   element.addEventListener('change', Calculate);
   element.onchange();
});

function Calculate() {
    document.getElementById('lblRes1').innerHTML = this.value * 0.5;
}

稍微干净一点

此外,当您将函数绑定到事件处理程序时,您会得到
对象。你可以在这样的函数中使用

window.addEventListener('load', function(){
   let element = document.getElementById('portioner')
   element.addEventListener('change', Calculate);
   element.onchange();
});

function Calculate() {
    document.getElementById('lblRes1').innerHTML = this.value * 0.5;
}

稍微干净一点

这很有效。非常感谢所有做出贡献的人!这很有效。非常感谢所有做出贡献的人!