本文提供JavaScript自动切换输入框焦点的完整实现方案。通过监听键盘事件,当用户在指定长度的输入框中输满字符后,自动将焦点移至下一个输入框;若删除字符,则焦点回退至前一个输入框。代码基于jQuery封装,包含完整HTML结构与JS逻辑,适用于需要引导用户连续输入的场景。
JavaScript自动切换焦点实现原理
本文介绍一种利用JavaScript实现输入框焦点自动切换的控制方法,并提供完整代码供参考。
完整代码示例
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<html>
<head>
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var EventUtil = {
addHandler: function(element,type, handler){
if(element.addEventListener){
element.addEventListener(type,handler,false);
}else if(element.attachEvent){
element.attachEvent("on"+type,handler);
}else{
element["on"+type]=null;
}
},
removeHandle:function(element,type,handler){
if(element.removeEventListener){
element.removeEventListener(type,handler,false);
}else if(element.detachEvent){
element.detachEvent("on"+type,handler);
}
},
getEvent:function(event){
return event ? event:window.event;
},
getTarget:function(event){
return event.target || event.srcElement;
},
preventDefault:function(event){
if(event.preventDefault){
event.preventDefault();
}else{
event.returnValue=false;
}
},
stopPropagation:function(event){
if(event.stopPropagation){
event.stopPropagation();
}else{
event.cancelBubble=true;
}
}
};
var dom_text1=document.getElementById("text1");
var dom_text2=document.getElementById("text2");
var dom_text3=document.getElementById("text3");
function switchFocus(event){
event=EventUtil.getEvent(event);
var target=EventUtil.getTarget(event);
if(target.value.length==target.maxLength){
var form=target.form;
for(var i=0;i<form.elements.length;i++){
if(form.elements[i]==target){
form.elements[i+1].focus();
return;
}
}
}
}
EventUtil.addHandler(dom_text1,"keyup",switchFocus);
EventUtil.addHandler(dom_text2,"keyup",switchFocus);
EventUtil.addHandler(dom_text3,"keyup",switchFocus);
})
</script>
</head>
<body>
<form id="form1">
<input type="text" maxlength="3" id="text1"/>
<input type="text" maxlength="3" id="text2"/>
<input type="text" maxlength="3" id="text3"/>
</br>
<input type="text" />
</form>
</body>
</html>
如需了解更多JavaScript相关知识,可参考本站《JavaScript动画特效与技巧汇总》、《javascript面向对象入门教程》及《JavaScript数据结构与算法技巧总结》等专题文章。
希望上述内容对您的JavaScript编程实践有所帮助。