我创建了一个函数,当用户填写两个输入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);
}
目前,如果您输入通讯和小时,然后在输入外单击,则会在手机中计算结果。
我想要达到的目的是在您输入两个字段中的任何一个时计算。
我试图找到可以帮助我的东西,但没有运气。有什么建议吗?
答案 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();"/>