Brug af piletaster
Hejsa exp'erJeg har taget scriptet fra http://eksperten.dk/spm/381667 og det virker også fint, men er det muligt at en af jer kan lave en lille vidre udvikling af det med følgende tilføjet, Ctrl bruges til alle piletaster, ikke kun op og ned, samt at man ikke behøver at slippe Ctrl for at kunne hoppe videre igen? Så vil det bare være super fedt :o)
StufdBear
---- kode ----
<HTML>
<HEAD>
<TITLE>Naviger med piletaster</TITLE>
<script>
var boolCtrlDown = false;
var curField = null;
function doKeyDown(e) {
if (!e) var e = window.event;
if (e.keyCode) kCode = e.keyCode;
else if (e.which) kCode = e.which;
var elm;
if (e.srcElement) elm = e.srcElement;
else if (e.target) elm = e.target;
else return false;
curField = (elm.tagName.toUpperCase() == 'INPUT' && elm.type == 'text') ? elm : null;
var boolDoCancel = false;
switch (kCode) {
case 37: if (boolCtrlDown) navVer('previous'); boolDoCancel = true; break; //Ctrl + venstre
pil
case 38: navHor('previous'); boolDoCancel = true; break; //pil op
case 39: if (boolCtrlDown) navVer('next'); boolDoCancel = true; break; // Ctrl + højre pil
case 40: navHor('next'); boolDoCancel = true; break; //pil ned
}
boolCtrlDown = (kCode == 17);
if (boolDoCancel) {
e.returnValue = false;
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
}
}
function navVer(dir) {
var elm = eval('curField.parentElement.' + dir + 'Sibling');
if (elm != null) {
elm = elm.firstChild;
if (elm != null && elm.tagName.toUpperCase() == 'INPUT' && elm.type == 'text') elm.focus();
}
}
function navHor(dir) {
var elm = eval('curField.parentElement.parentElement.' + dir + 'Sibling');
var ix = 0;
var tmpElm = curField.parentElement;
while (tmpElm.previousSibling) {
ix++;
tmpElm = tmpElm.previousSibling;
}
if (elm != null) {
elm = elm.firstChild;
if (elm != null) {
i = 0;
while (ix > i) {
if (elm.nextSibling) {
elm = elm.nextSibling;
}
else return false;
i++;
}
if (elm.firstChild != null) elm.firstChild.focus();
}
}
}
</script>
</HEAD>
<BODY onload="inputTable.rows(0).cells(0).firstChild.focus()">
<TABLE id="inputTable" onkeydown="doKeyDown()">
<TR>
<TD><input type=text size=10></TD>
<TD><input type=text size=10></TD>
<TD><input type=text size=10></TD>
<TD><input type=text size=10></TD>
</TR>
<TR>
<TD><input type=text size=10></TD>
<TD><input type=text size=10></TD>
<TD><input type=text size=10></TD>
<TD><input type=text size=10></TD>
</TR>
<TR>
<TD><input type=text size=10></TD>
<TD><input type=text size=10></TD>
<TD><input type=text size=10></TD>
<TD><input type=text size=10></TD>
</TR>
<TR>
<TD><input type=text size=10></TD>
<TD><input type=text size=10></TD>
<TD><input type=text size=10></TD>
<TD><input type=text size=10></TD>
</TR>
<TR>
<TD><input type=text size=10></TD>
<TD><input type=text size=10></TD>
<TD><input type=text size=10></TD>
<TD><input type=text size=10></TD>
</TR>
</TABLE>
---- kode ----