我有 4 个输入框来输入 4 位密码。当用户填写第一个输入框时,我想将焦点集中到下一个输入框。
我不得不用document.getElementById('second').focus();
焦点转到下一个输入框。不幸的是,这在 iO 中不起作用。
我做了进一步的研究,发现像“onkeyup”,“onkeypress”这样的事件不会发生聚焦,但它适用于“onclick”事件。
你们有什么想法来解决这个问题或解决这个问题的替代解决方案。
HTML
<input id="first" name="first" type="number" style="width: 50px; height: 50px;" maxlength="1" onkeyup="focusSecondBox(event);" />
<input id="second" name="second" type="number" style="width: 50px; height: 50px;" maxlength="1" onkeyup="focusThirdBox(event);"/>
JS
function getEventCharCode(evt){
evt = (evt) ? evt : window.event;
var charCode = (evt.which) ? evt.which : evt.keyCode;
return charCode;
}
function isEmptyElement(element){
return (element === null || element.value === null || element.value === '');
}
function focusSecondBox(evt){
var element = document.getElementById('first');
var previousElement = document.getElementById('first');
var nextElement = document.getElementById('second');
focusInput();
}
function focusInput(){
var charCode = getEventCharCode(evt);
if (isEmptyElement(element)) {
if (charCode === 8) {
previousElement.focus();
previousElement.value = previousElement.value;
}
} else if (nextElement !== null) {
nextElement.focus();
}
}
谢谢