在击键时执行JS功能

时间:2017-12-23 08:14:15

标签: javascript

我创建了一个函数,当用户填写两个输入comm和hour时,它会将结果填充到另一个名为phone的输入中。

calculate = function()
{
    var comm = document.getElementById('comm').value;
    var hour = document.getElementById('hour').value; 
    document.getElementById('phone').value = Math.round(comm*hour*phone/60);
}

目前,如果您输入通讯和小时,然后在输入外单击,则会在手机中计算结果。

我想要达到的目的是在您输入两个字段中的任何一个时计算。

我试图找到可以帮助我的东西,但没有运气。有什么建议吗?

5 个答案:

答案 0 :(得分:3)

查看onkeydown。类似下面的代码。

document.onkeydown = calculate = function()
{
    var comm = parseFloat(document.getElementById('comm').value);
    var hour = parseFloat(document.getElementById('hour').value); 
    document.getElementById('phone').value = Math.round(comm*hour*phone/60);
}

只要在页面上按下某个键,就会调用该函数。

答案 1 :(得分:2)

作为@CharlieFish回答使用document.onkeydown在按键时调用事件并使用parseFloat将值转换为浮动

document.onkeydown = calculate = function()
{
    //hope you have define phone value
    var comm = parseFloat(document.getElementById('comm').value);
    var hour = parseFloat(document.getElementById('hour').value); 
    document.getElementById('phone').value = Math.round(comm*hour*phone/60);
}

答案 2 :(得分:1)

document.body.onkeypress(function(){
   // invoke your function here calculator()
   // additional logic can we added here too.
})

答案 3 :(得分:1)

如果你想立即开始工作,请使用IIFE(立即调用的函数表达式)并为'keyup'添加一个事件监听器,这样一旦设置了输入字段中的值,它就会触发:

(function(){
  document.getElementById('foo').addEventListener('keyup',function(){
  //add your logic here
  console.log('someone pressed a key!');
});
}());

...只需记住在尝试计算之前解析示例中的值,就像从元素中获取它们一样typeof string ...

所以value = parseFloat(value);

答案 4 :(得分:0)

我认为你需要的是在文本更改事件中触发计算功能,只需尝试这个

<input type="text" id="comm" onchange="calculate();"/>
<input type="text" id="hour" onchange="calculate();"/>