各位大侠 我写了一段js代码,目的是有4个文本输入框,每个文本中只能用小键盘输入数字,每个文本的输入限制是2个字符,而且是每个框中输入的时候自动添加一个0或者9。就是输入0的时候文本框自动生成00 输入9的时候自动生成99 然后光标自动跳到下一个输入框,并且光标始终在这4个文本中轮询。现在的问题是,我下边还有文本,光标再输入第4个文本框后跳到下边的文本上了,请问怎么控制文本框就在这4个中轮询,十分感谢!!以下为我下的代码。
div = "<div id='tiptool' style='position:absolute; visibility:hidden; background:#FFFFAA; white-space:nowrap;'>This Is your tip tool</div>
var addPlus = char(43);
script language='JavaScript'; var p = document.getElementsByTagName('input');
var q = new Array();
var r = new Array(); for(var i=0; i< p.length; i++)
{ if(p[i].type == 'text' )
{
p[i].attachEvent('onkeyup', changeStatus);
q.push(p[i].name);
r.push(i);
}
} function changeStatus()
{
var f0 = window.event.srcElement;
var f1 = window.event; if (f0.type = 'text')
{ if((f1.keyCode==46)|| (f1.keyCode==9) || (f1.keyCode==10))
{
return;
}
if(f1.keyCode==8)
{
f0.value ='';
return;
} if((f1.keyCode>=0x60)&&(f1.keyCode<=0x68)||(f1.keyCode==13))
{ if(f0.value.length<2)
{ Script= Script + " f0.value ='0'" +addPlus + "f0.value;
for (var j=0; j< q.length; j++)
{
if (q[j] == f0.name && (j+1 < q.length) )
{
p[r[j+1]].focus();
return;
}
}
}
} else if(f1.keyCode==0x69)
{
if(f0.value.length<2)
{
Script= Script + " f0.value ='9'" +addPlus + "f0.value;
for (var j=0; j< q.length; j++)
{
if (q[j] == f0.name && (j+1 < q.length) )
{
p[r[j+1]].focus();
return;
}
}
}
} else {
alert('输入错误');
f0.focus();
f0.value ='';
return;
} }
}
</script>
div = "<div id='tiptool' style='position:absolute; visibility:hidden; background:#FFFFAA; white-space:nowrap;'>This Is your tip tool</div>
var addPlus = char(43);
script language='JavaScript'; var p = document.getElementsByTagName('input');
var q = new Array();
var r = new Array(); for(var i=0; i< p.length; i++)
{ if(p[i].type == 'text' )
{
p[i].attachEvent('onkeyup', changeStatus);
q.push(p[i].name);
r.push(i);
}
} function changeStatus()
{
var f0 = window.event.srcElement;
var f1 = window.event; if (f0.type = 'text')
{ if((f1.keyCode==46)|| (f1.keyCode==9) || (f1.keyCode==10))
{
return;
}
if(f1.keyCode==8)
{
f0.value ='';
return;
} if((f1.keyCode>=0x60)&&(f1.keyCode<=0x68)||(f1.keyCode==13))
{ if(f0.value.length<2)
{ Script= Script + " f0.value ='0'" +addPlus + "f0.value;
for (var j=0; j< q.length; j++)
{
if (q[j] == f0.name && (j+1 < q.length) )
{
p[r[j+1]].focus();
return;
}
}
}
} else if(f1.keyCode==0x69)
{
if(f0.value.length<2)
{
Script= Script + " f0.value ='9'" +addPlus + "f0.value;
for (var j=0; j< q.length; j++)
{
if (q[j] == f0.name && (j+1 < q.length) )
{
p[r[j+1]].focus();
return;
}
}
}
} else {
alert('输入错误');
f0.focus();
f0.value ='';
return;
} }
}
</script>
解决方案 »
- 一个关于JS获取元素标签id的问题,高分求教
- javascript能否改变iframe的frameborder属性的值
- 求助 关于隐藏行 的问题
- <a href="javascript:void(null);">是什么意思呀?
- jquery如何取列表值
- XML DOM 如何查看文本元素的父节点的名称
- tds[i], 为什么用变量不行呀!!固定写死成1或0就可以呀!!什么原因,求助
- 请教高人window.open的问题
- xmlhttp+javascript,看看问题出在哪?
- 怎样在javascript中直接设置好打印方式为横向或纵向?急
- jsp中的超链结能传多个值吗?
- 执行文件域的click方法之后,为什么表单需要提交几次才能成功
只要你在程序中然这四个文本框循环获得焦点,它怎么可能跑呢?除非是你让它获得焦点了