用于按maxlength和检查数组自动选项卡输入文本的Javascript

用于按maxlength和检查数组自动选项卡输入文本的Javascript,javascript,Javascript,我试图实现该功能,但它不起作用。自动标签自动工作,但只要我检查输入值是否是数组的成员,它就不再自动标签 function check() { var listing = [100,101,102]; var letters = document.myinput.one.value.length +1; if (letters <= 3) { document.myinput.one.focus() } else { if (listing.indexOf(document.myin

我试图实现该功能,但它不起作用。自动标签自动工作,但只要我检查输入值是否是数组的成员,它就不再自动标签

function check()
{
var listing = [100,101,102];
var letters = document.myinput.one.value.length +1;
if (letters <= 3) {
  document.myinput.one.focus()
}
else {
  if (listing.indexOf(document.myinput.one.value) >= 0){
    document.myinput.two.focus()
  }
  else {document.myinput.one.focus()
  }
}

<FORM NAME="myinput">
<INPUT TYPE="text" name="one" size="4" MAXLENGTH="3" onKeyUp="check()"><BR>
<INPUT TYPE="text" name="two" size="10" MAXLENGTH="3"><BR>
</FORM>

第二部分,然后将焦点更改为输入2。知道为什么它不起作用吗?我使用Chrome只是因为它是基于浏览器的应用程序的一部分。

这是因为document.myinput.one.value返回字符串,并且数组包含整数。使用parseInt()

函数检查()
{
var清单=[100101102];
变量字母=document.myinput.one.value.length+1;
如果(字母=0){
document.myinput.two.focus()
}
否则{
document.myinput.one.focus()文件
}
}
}

无关:
document.myinput.one
不是标准。您应该使用
document.forms.myinput.elements.one
在我的代码中记录并更改它,但它仍然不起作用。仍然不起作用,我尝试将列表数组更改为字符串,如清单=[“100”、“101”、“102”]。还尝试了list=“100 101 102”函数check(){var list=[100101102];var letters=document.myinput.one.value.length+1;console.log(字母);if(letters=0){console.log(“案例2”);document.myinput.two.focus()}else{console.log(“案例3”);document.myinput.one.focus()}}而且,Oriol说:Unrelated:document.myinput.one不是标准的。你应该使用document.forms.myinput.elements.one ps我在goolge chrome浏览器中测试我的previos功能。在那里工作很好。pps最好使用它们的类名或标识符来选择元素。它在我的谷歌浏览器中不起作用。我试过两台电脑和你的两种功能。知道为什么吗?我穿上JSFIDLE也无法运行?好的,我将indexof更改为<-1,它在aviator中工作。但我在JSFIDLE中再次尝试,同一段代码(我从工作代码复制粘贴)仍然没有运行。我很困惑!无论如何,我会将JSFIDLE更新到现在可以在浏览器中使用的版本。
 if (listing.indexOf(document.myinput.one.value) >= 0)
 function check()
    {
    var listing = [100,101,102];
    var letters = document.myinput.one.value.length +1;
    if (letters <= 3) {
      document.myinput.one.focus()
    }
    else {
      if (listing.indexOf(parseInt(document.myinput.one.value)) >= 0){
        document.myinput.two.focus()
      }
      else {
    document.myinput.one.focus()
      }
    }
    }