我试图实现功能,但它不起作用。 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,因为它是基于浏览器的应用程序的一部分。
答案 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()
}
}
}