您好,欢迎访问一九零五行业门户网

js 上下左右键控制焦点(示例代码)_javascript技巧

如下所示:
复制代码 代码如下:
//begin---------------上下左右键控制if('${iscontrol_mchntid}'.indexof('${mchntid}')!=-1){
var texts = new array();
//设置为focus所在的location
var x = 2;
var y = 3;
var maxx = 0;
var maxy = 0;
window.onload=function(){
var inputs = $([location]);
for(var i = 0; i texts.push(inputs[i]);
}
for(var i = 0; i texts[i].onfocus = new function(setcurrent(' + texts[i].getattribute(location) + '));
var crtx = parseint(texts[i].getattribute(location).split(,)[0]);
var crty = parseint(texts[i].getattribute(location).split(,)[1]);
maxx = maxx maxy = maxy texts[i].onkeydown = function(e){
e = e || window.event;
switch(e.keycode){
case 38:setposition(x,y,38);break;// 上
case 40:setposition(x,y,40);break;// 下
case 37:setposition(x,y,37);break;// 左
case 39:setposition(x,y,39);break;// 右
case 45:setposition(x,y,45);break; // insert键/返回键 在输入框里是删除且输入库有值时是删除 其他为返回上一页
default:return true;
}
};
}
};
function setposition(x,y,keycode){
//此处加入动态改变位置的逻辑----begin
//上下时,只改动y坐标,x坐标自动改变
//左右时,只改动x坐标,y坐标自动改变
if(keycode == '38' && x == '3'){
if(y=='3'||y=='4'||y=='5'||y=='6'||y=='7'||y=='8'){
y='3';
}
}
if(keycode == '40' && x == '4'){
if(y=='3'||y=='4'||y=='5'||y=='6'||y=='7'||y=='8'){
y='3';
}
}
//此处加入动态改变位置的逻辑----end
if(keycode == '38'){
x = --x;
}
if(keycode == '40'){
x = ++x;
}
if(keycode == '37'){
y = --y;
}
if(keycode == '39'){
y = ++y;
}
moveposition(x,y,keycode);
}
function moveposition(x1,y1,keycode){
if(keycode == '45'){
//光标所在的对象是input时
var st = x1+,+y1;
if($(input[location='+st+']).attr(type)==text){
var oldval = $(input[location='+st+']).val();
var newval = oldval.substring(0,oldval.length-1);
$(input[location='+st+']).val(newval);
return false;
}else{
history.go(-1);
return false;
}
}
x1 = x1 > maxx ? 1 : x1;
y1 = y1 > maxy ? 1 : y1;
x1 = x1 y1 = y1
var j = 0;
for(; j if(texts[j].getattribute(location) == x1 + , + y1){
texts[j].focus();
break;
}
}
if(j == texts.length){
switch(keycode){
case 38:moveposition(--x1,y1,keycode);break;// 上
case 40:moveposition(++x1,y1,keycode);break;// 下
case 37:moveposition(x1,--y1,keycode);break;// 左
case 39:moveposition(x1,++y1,keycode);break;// 右
}
}
}
function setcurrent(location){
x = location.split(,)[0];
y = location.split(,)[1];
}
}
//end---------------上下左右键控制
其它类似信息

推荐信息