通过maxlength和检查数组为autotab输入文本的Javascript

时间:2015-01-19 01:20:21

标签: javascript

我试图实现功能,但它不起作用。 autotab单独工作,但只要我检查输入值是否是数组的成员,它就不再支持autotab了。

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>

如果我省略:

 if (listing.indexOf(document.myinput.one.value) >= 0)

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

1 个答案:

答案 0 :(得分:0)

因为document.myinput.one.value返回一个字符串,而你的数组包含整数。使用parseInt()

 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()
      }
    }
    }