转换为windows mobile中的选项卡

时间:2012-03-05 17:58:50

标签: javascript ie-mobile

http://jsfiddle.net/mhenrixon/zPLgS/16/上有以下javascript,并且它在常规浏览器中工作正常,但我不能在IE Mobile for Windows CE 6.0中使用它需要工作。谁知道如何解决这个问题?

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;
}​

3 个答案:

答案 0 :(得分:1)

如果您只是将event.whichevent.keyCodeENTER更改为TAB,并让默认行为通过,该怎么办?类似的东西:

function tab(event) {
    if (event.which && event.which == 13)
        event.which = 9;
    else if (event.keyCode && event.keyCode == 13)
        event.keyCode = 9;
}

不确定他们的密钥代码是否与Windows Mobile不同,但要确定您需要做的只是alert(event.which);alert(event.keyCode);

答案 1 :(得分:1)

我无法测试任何这些链接,因为我没有任何带有Windows Mobile的移动设备,但也许有一些对您有所帮助:

答案 2 :(得分:0)

谢谢大家,问题是没有获得密钥,它没有改变传播或类似的东西,实际上很容易。

完整解决方案

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;
      }
    }
  }
}