读书人

想做个按键切换焦点的JS 如何弄

发布时间: 2012-05-08 22:09:41 作者: rapoo

想做个按键切换焦点的JS 怎么弄?
三个输入框:
姓名<input type='text' name='txt1'><br />
手机<input type='text' name='txt2'><br />
昵称<input type='text' name='txt3'><br />
<button id='btn1'>下一个</button>
按钮描述:没有input获得焦点时,点击按钮第一个input获得焦点,有input获得焦点时,点击按钮下一个input获得焦点。
这个要怎么弄呢?当有INPUT获得焦点 当前INPUT的下一个元素呢?当按钮onclick被触发时,此时的focus是#documnet了,而不是input了?是不是?
要怎么做呢?

[解决办法]

HTML code
<!DOCTYPE HTML><html>    <head>        <meta charset="gb2312" />        <title></title>        <style>                </style>    </head>    <body>        姓名<input type='text' name='txt1'><br />        手机<input type='text' name='txt2'><br />        昵称<input type='text' name='txt3'><br />        <button id='btn1'>下一个</button>        <script>            var $ = function(id){                return document.getElementById(id);            };            var $t = function(tag, cot){                cot = cot || document;                return cot.getElementsByTagName(tag);            };                        var objs = $t('input');            var i = 0;            $('btn1').onclick = function(){                objs[i].focus();                i = i > 1 ? 0 : i + 1;            }                                </script>    </body></html>
[解决办法]
sorry 刚才的tab影响拍板 这次换成空格就好了
<html>
<head>
<script>
function xyz() {
var inputs1 = document.getElementsByTagName("input");
for (var i = 0; i < inputs1.length; i ++) {
if (inputs1[i].inputing == "true") {
inputs1[i].inputing = "false";
inputs1[(i + 1) % inputs1.length].focus();
return;
}
}
if (inputs1[0]) {
inputs1[0].inputing = "false";
inputs1[0].focus();
}
}
function initInputing(inputObject) {
var inputs2 = document.getElementsByTagName("input");
for (var i = 0; i < inputs2.length; i ++) {
if (inputs2[i] == inputObject) {
inputs2[i].inputing = "true";
}
else {
inputs2[i].inputing = "false";
}
}
}
</script>
</head>
<body>
<center>
姓名<input type="text" name="txt1" inputing = "false" onfocus = "initInputing(this)"><br/>
手机<input type="text" name="txt2" inputing = "false" onfocus = "initInputing(this)"><br/>
昵称<input type="text" name="txt3" inputing = "false" onfocus = "initInputing(this)"><br/>
<button id="btn1" onclick = "xyz()">下一个</button>
</center>
</body>
</html>

读书人网 >JavaScript

热点推荐