我有这个小 javascript 工具,可以实时将数字转换为其他基数。每次在每个文本框中按下一个键时checkchangedec()
,它都会调用一个更新函数来实现这一点。checkchangehex()
它工作正常。
我想要做的是使用箭头键“移动焦点”。我之前使用 成功完成了此操作event.keyCode
,但问题是我已经在使用元素的 onkeydown 和 onkeypressed 调用函数。我不知道通过 onkeydown 或 onkeypressed 属性调用多个函数的方法。
这是数字转换器的JSFiddle,这里是输入:
<input id="dec" onkeypress="return isNumberKey(event);" onkeydown=checkchangedec() value="10">
以及它调用的函数:
function checkchangedec() {
setTimeout(
function () {
if (id('dec').value !== "") {
id('hex').value = parseInt(id('dec').value, 10).toString(16);
id('bin').value = parseInt(id('dec').value, 10).toString(2);
id('cbi').value = parseInt(id('dec').value, 10).toString(id('cbival').value);
}
}, 20);
}
function isNumberKey(evt) {
var charCode = (evt.which) ? evt.which : event.keyCode;
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
return false;
}
return true;
}
这是我如何使它工作的示例:
function navigate(up, down) {
if (event.keyCode == 13 || event.keyCode == 40) document.getElementById(down).focus();
if (event.keyCode == 38) {document.getElementById(up).focus(); document.getElementById(up).select();}
if (event.keyCode == 39) randomize(); // the randomize() function gives a random number,
// irrelevant to navigation
这是输入框:
<input type="text" value="55EEFF" id="i_sco" onkeydown="navigate('i_col', 'i_ssi')"></input>