以下に示すように:
次のようにコードをコピーします。
//begin---------------上下左右のキーコントロール
if('${iscontrol_mchntid}'.indexOf('${mchntid}')!=-1){
var text = 新しい Array();
//フォーカスのある位置に設定
var x = 2;
変数y = 3;
var maxx = 0;
var maxy = 0;
window.onload=function(){
var inputs = $("[場所]");
for(var i = 0; i < inputs.length; i++){
texts.push(入力[i]);
}
for(var i = 0; i < texts.length; 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 < crtx : maxx ?
maxy = maxy < crty : maxy;
texts[i].onkeydown = function(e){
e = e || ウィンドウイベント;
switch(e.keyCode){
case 38:setPosition(x,y,38);break;//上
case 40:setPosition(x,y,40);break;// 次へ
case 37:setPosition(x,y,37);break;//left
case 39:setPosition(x,y,39);break;//right
case 45:setPosition(x,y,45);break; //入力ボックスの挿入キー/リターンキーが削除され、入力ライブラリに値が存在します。それ以外の場合は削除され、前のページに戻ります。
デフォルト: true を返します。
}
};
}
};
関数 setPosition(x,y,keyCode){
//位置を動的に変更するロジックをここに追加します----開始
//上下する場合はy座標のみが変更され、x座標は自動的に変更されます。
//左右の場合はx座標のみが変更され、y座標は自動的に変更されます。
if(キーコード == '38' && x == '3'){
if(y=='3'||y=='4'||y=='5'||y=='6'||y=='7'||y=='8'){
y='3';
}
}
if(キーコード == '40' && x == '4'){
if(y=='3'||y=='4'||y=='5'||y=='6'||y=='7'||y=='8'){
y='3';
}
}
//位置を動的に変更するロジックをここに追加します----end
if(キーコード == '38'){
x = --x;
}
if(キーコード == '40'){
x = ++x;
}
if(キーコード == '37'){
y = --y;
}
if(キーコード == '39'){
y = ++y;
}
movePosition(x,y,keyCode);
}
関数 movePosition(x1,y1,keyCode){
if(キーコード == '45'){
//カーソルのあるオブジェクトが入力された場合
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);
false を返します。
}それ以外{
歴史.go(-1);
false を返します。
}
}
x1 = x1 > maxx 1 : x1;
y1 = y1 > 最大 1 : y1;
x1 = x1 < 1 maxx : x1;
y1 = y1 < 1 ? 最大値: y1;
var j = 0;
for(; j < texts.length; j++){
if(texts[j].getAttribute("場所") == x1 + "," + y1){
テキスト[j].focus();
壊す;
}
}
if(j == texts.length){
スイッチ(キーコード){
case 38: movePosition(--x1,y1,keyCode);break;//Up
case 40:movePosition(++x1,y1,keyCode);break;// 次へ
case 37:movePosition(x1,--y1,keyCode);break;//left
ケース 39: movePosition(x1,++y1,keyCode);break;//right
}
}
}
関数 setCurrent(location){
x = location.split(",")[0];
y = location.split(",")[1];
}
}
//end---------------上下左右キーの制御