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;
}​
Was it helpful?

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:

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top