Как показано ниже:
Скопируйте код кода следующим образом:
//начало---------------кнопки управления вверх, вниз, влево и вправо
if('${iscontrol_mchntid}'.indexOf('${mchntid}')!=-1){
вар тексты = новый массив ();
//Устанавливаем место, где находится фокус
вар х = 2;
вар у = 3;
вар Максх = 0;
вар Макси = 0;
window.onload=function(){
var inputs = $("[location]");
for(var я = 0; я <inputs.length; я++){
texts.push(входы[я]);
}
for(var я = 0; я <texts.length; я++){
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 <crtx ? crtx: maxx;
макси = макси < crty ? crty : maxy;
texts[i].onkeydown = function(e){
е = е || окно.событие;
переключатель (e.keyCode) {
случай 38:setPosition(x,y,38);break;//Вверх
случай 40:setPosition(x,y,40);break;// Далее
случай 37:setPosition(x,y,37);break;//влево
случай 39:setPosition(x,y,39);break;//вправо
case 45:setPosition(x,y,45);break; //Кнопка вставки/возврата удаляется из поля ввода, а библиотека ввода имеет значение, в противном случае она удаляется и возвращается на предыдущую страницу.
по умолчанию: вернуть истину;
}
};
}
};
функция 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'){
у = '3';
}
}
if(keyCode == '40' && x == '4'){
if(y=='3'||y=='4'||y=='5'||y=='6'||y=='7'||y=='8'){
у = '3';
}
}
//Здесь добавляем логику динамического изменения позиции----конец
если(keyCode == '38'){
х = --х;
}
если(keyCode == '40'){
х = ++х;
}
если(keyCode == '37'){
у = --у;
}
если(keyCode == '39'){
у = ++у;
}
movePosition (x, y, keyCode);
}
функция movePosition(x1,y1,keyCode){
если(keyCode == '45'){
//При вводе объекта, на котором находится курсор
вар ст = x1+","+y1;
if($("input[location=""+st+"']").attr("type")=="text"){
var oldval = $("input[location=""+st+"']").val();
вар newval = oldval.substring(0,oldval.length-1);
$("input[location='"+st+"']").val(newval);
вернуть ложь;
}еще{
история.go(-1);
вернуть ложь;
}
}
х1 = х1 > максх 1: х1;
у1 = у1 > макси 1: у1;
х1 = х1 <1 ? максх: х1;
у1 = у1 <1 ? макси: у1;
вар j = 0;
for(; j <texts.length; j++){
if(texts[j].getAttribute("location") == x1 + "," + y1){
тексты[j].focus();
перерыв;
}
}
if(j == texts.length){
переключатель (код ключа) {
случай 38: movePosition(--x1,y1,keyCode);break;//Вверх
case 40:movePosition(++x1,y1,keyCode);break;// Далее
случай 37: movePosition(x1,--y1,keyCode);break;//left
случай 39: movePosition(x1,++y1,keyCode);break;//right
}
}
}
функция setCurrent(местоположение){
x = location.split(",")[0];
y = location.split(",")[1];
}
}
//конец---------------Клавиши управления вверх, вниз, влево и вправо