Convert enter to tab in windows mobile
-
07-12-2019 - |
Question
Have the following piece of javascript over on http://jsfiddle.net/mhenrixon/zPLgS/16/ and its working fine in regular browsers but I can't make it work in IE Mobile for Windows CE 6.0 where it needs to work. Anyone knows how to fix that?
function tab(field, event) {
if (event.which == 13 /* IE9/Firefox/Chrome/Opera/Safari */ || event.keyCode == 13 /* IE8 and earlier */ ) {
for (i = 0; i < field.form.elements.length; i++) {
if (field.form.elements[i].tabIndex == field.tabIndex + 1) {
field.form.elements[i].focus();
if (field.form.elements[i].type == "text") {
field.form.elements[i].select();
break;
}
}
}
return false;
}
return true;
}
Solution 3
Thanks guys the problem was not getting the key and it was not changing propagation or anything like that it was actually quite easy.
Full solution
function tab(field, event) {
if (event.which == 13 /* IE9/Firefox/Chrome/Opera/Safari */ || event.keyCode == 13 /* IE8 and earlier */) {
nextElement(field);
return false;
}
return true;
}
function nextElement(field) {
for (var i = 0; i < field.form.elements.length; i++) {
if (field.form.elements[i].tabIndex == field.tabIndex + 1) {
field.form.elements[i].focus();
if (field.form.elements[i].type == "text") {
field.form.elements[i].select();
break;
}
}
}
}
OTHER TIPS
What if you were to just change the event.which
or event.keyCode
from ENTER
to TAB
, and let the default behavior go through? Something like:
function tab(event) {
if (event.which && event.which == 13)
event.which = 9;
else if (event.keyCode && event.keyCode == 13)
event.keyCode = 9;
}
Not sure if they key codes are different for Windows Mobile, but to figure that out all you need to do is alert(event.which);
or alert(event.keyCode);
.
I cannot test any of these links because I dont have any mobile device with Windows Mobile but maybe there is something helpful for you: