Javascript 为什么输入类型=当我触发函数时数值为空
当我输入一个数字时,它给出我输入的第一个数字的e.code,输入值为空,如果我输入另一个数字,它给出的是该数字的e.code,但它的值是第一个数值Javascript 为什么输入类型=当我触发函数时数值为空,javascript,html,Javascript,Html,当我输入一个数字时,它给出我输入的第一个数字的e.code,输入值为空,如果我输入另一个数字,它给出的是该数字的e.code,但它的值是第一个数值 var input = document.getElementById('w-input'); var kg = document.getElementById('kg'); input.addEventListener('keypress', function (e) { if (e.
var input = document.getElementById('w-input');
var kg = document.getElementById('kg');
input.addEventListener('keypress', function (e) {
if (e.code === 'Numpad1'|| e.code==='Numpad2'|| e.code==='Numpad3' ||
e.code==='Numpad4'|| e.code==='Numpad5'|| e.code==='Numpad6'||
e.code==='Numpad7'|| e.code==='Numpad8'|| e.code==='Numpad9'||
e.code==='Numpad0') {
console.log(e.code);
lbsToKg();
}
});
function lbsToKg() {
console.log(input.value);
kg.innerHTML = input.value * 0.45359237;
}
它应该得到输入值并与数字相乘,但如果不相乘,则给出1-9数字0表示该值为空。如果我输入12,它给出0.45359237,结果意味着它与1相乘,而不是在输入更改值之前触发12。使用
keyup
在输入更改值后触发
功能打印(inp,e){
控制台日志(输入值);
}
Kamil回答了为什么该值不正确的问题,但您也可以减少检查按键时使用的代码量,这可能会对您有用
var-input=document.getElementById('w-input');
var kg=document.getElementById('kg');
input.addEventListener('keyup',函数(e){
//从事件中获取代码和值
常量{代码,目标:{value}}=e;
//如果代码是“Numpad”,后跟一个数字,则调用该函数
//有价值
如果(/Numpad[0-9]/.test(代码))lbsToKg(值);
});
功能lbsToKg(值){
kg.innerHTML=值*0.45359237;
}
您可以使用e.which