<html>
<body>
<table>
<tr>
<td>ID:</td><td><input type="text" name="id" size="6" maxlength="4"></td>
<td>FirstName:</td><td><input type="text" name="firstname" size="10" maxlength="6"></td>
<td>LastName:</td><td><input type="text" name="lastname" size="10" maxlength="8"></td>
<td><input type="button" name="ok" value="ok"></td>
</table>
</body>
<script>
document.getElementsByName('id')[0].onkeyup=function()
{
if(event.srcElement.value.length==parseInt(event.srcElement.maxLength))
{
document.getElementsByName('firstname')[0].focus();
}
}
</script>
</html>
<body>
<table>
<tr>
<td>ID:</td><td><input type="text" name="id" size="6" maxlength="4"></td>
<td>FirstName:</td><td><input type="text" name="firstname" size="10" maxlength="6"></td>
<td>LastName:</td><td><input type="text" name="lastname" size="10" maxlength="8"></td>
<td><input type="button" name="ok" value="ok"></td>
</table>
</body>
<script>
document.getElementsByName('id')[0].onkeyup=function()
{
if(event.srcElement.value.length==parseInt(event.srcElement.maxLength))
{
document.getElementsByName('firstname')[0].focus();
}
}
</script>
</html>
1.我需要的是对全部的输入框都能有此功能,而你这只对ID输入框有效!
2.要做成function!
3.你这里面对方向键都不能用了(上下左右)!
4.你一次性输入>=4个中文字就更本没用!
请测侧试!!!!
如果超过MAXLENGTH了就用一个eventkey为9的就是tab键
<script language="javascript">
function check(e)
{
var a=e.value.length;
var b=e.maxLength;
if(a==b)
{
event.keyCode=9;
}
}
</script>
<body>
<table>
<tr>
<td>ID:</td><td><input type="text" name="id" size="6" maxlength="4" onkeydown=check(this)></td>
<td>FirstName:</td><td><input type="text" name="firstname" size="10" maxlength="6" onkeydown=check(this)></td>
<td>LastName:</td><td><input type="text" name="lastname" size="10" maxlength="8" onkeydown=check(this)></td>
<td><input type="button" name="ok" value="ok"></td>
</table>
</body>
</html>
to:hbhbhbhbhb1021(天外水火(我是SB,我要多努力))
你的代码测试了没有啊!!
1.你对功能键都没有判断!比如:在ID框中输入了4个后会跳到下一个输入框但是你在用把光标放回到
ID框,你在按任何键都会跳到下一个输入框
2.在ID框中输入了4个后会跳到下一个输入框但是你在用把光标放回到
ID框,你在按功能键如(CTRL或SHIFT等等)就报ERROR
请测侧试!!!!
<html>
<script language="javascript">
function init() {
allTextInput=new Array();
allInput=document.getElementsByTagName("INPUT");
for(i=0;i<allInput.length;i++) {
if(allInput[i].type=="text") {
allTextInput[allTextInput.length]=allInput[i];
allInput[i].onkeyup=nextInput;
}
}
}function nextInput() {
oElem=event.srcElement;
if(oElem.value.length>=4) {
for(i=0;i<allTextInput.length;i++) {
if(allTextInput[i]==oElem) {
if(i+1<allTextInput.length) {
allTextInput[i+1].focus();
}
break;
}
}
}
}
</script><body onload="init();"><table>
<tr>
<td>ID:</td><td><input type="text" name="id" size="6" maxlength="4"></td>
<td>FirstName:</td><td><input type="text" name="firstname" size="10" maxlength="6"></td>
<td>LastName:</td><td><input type="text" name="lastname" size="10" maxlength="8"></td>
<td><input type="button" name="ok" value="ok"></td>
</table>
</body>
</html>
我没有那个意思,只是觉得不测试是非常不对的。不测试这事也是外国老说中国程序员的一个典型。所以我才不爽的。对不起!
一看就知道你的js强。所以就.... 如果分不够可以加!!
问题:
1.输入中文好像不行。我用的输入法是:微软拼音。
2.如果第二个输入框是满的话,你将光标移到第一个输入框输满后光标就在第二个输入框上了,这时你在按功能键或上下左右键它就跳到第三个输入框上了!这样对吗?
2.不是没个输入框都是到4就移动光标。是要根据每个输入框的maxlength来判断的。
3.光标在LastName输入框中输满了后光标还要调到button上。
分不够可以加!!
分不够可以加!!
function init() {
allTextInput=new Array();
allInput=document.getElementsByTagName("INPUT");
for(i=0;i<allInput.length;i++) {
if(allInput[i].type=="text") {
allTextInput[allTextInput.length]=allInput[i];
allInput[i].onkeyup=nextInput;
allInput[i].onfocus=onFocus;
}
}
}
function nextInput() {
if(event.keyCode>=37 && event.keyCode<=40) return;
oElem=event.srcElement;
if(oElem.value.length>=oElem.maxLength) {
for(i=0;i<allTextInput.length;i++) {
if(allTextInput[i]==oElem) {
if(i+1<allTextInput.length) {
allTextInput[i+1].focus();
}
else {
document.all.ok.focus();
}
break;
}
}
}
}function onFocus() {
oElem=event.srcElement;
oElem.select();
}
</script>
jerrywh() ( ) 你是搞测试的吧。
这分太难挣了,罢了罢了
话说的是没错,测试是应该的,可是你是我们的客户吗?不然凭什么搞得像BOSS一样指手画脚?
搞清楚状况,你是程序员,你遇到问题来这求救。
我们给的程序可能不完全符合你的要求,但是一些简单的地方自己改改就好了,这是基本的常识啊!
<html>
<script language="javascript">
// 光标移动的KEYCODE
var G_KEYCODE = new Array('32','48','49','50','51','52','53','54','55',
'56','57','65','66','67','68','69','70','71',
'72','73','74','75','76','77','78','79','80',
'81','82','83','84','85','86','87','88','89','90',
'96','97','98','99','100','101','102','103','104',
'105','106','107','109','110','111',
'186','187','188','189','190','191','192',
'219','220','221','222','226');
/******************************************************************************
* 光标自动移动(下一个TEXTFIeld)
* @param 无
* @return 无
*****************************************************************************/
function jsAutoMoveText() { var pThis = window.event.srcElement;
var pActionKey = true;
//KEYCODE存在得场合pActionKey为false
for (var i = 0; i < G_KEYCODE.length; i++) {
if (window.event.keyCode == G_KEYCODE[i]) {
pActionKey = false;
break;
}
}
if (pThis.maxLength == pThis.value.length && pActionKey == false) {
var pObjCnt = document.all.tags("input").length;
var pNextObj = 0;
for (var i = 0; i < pObjCnt; i++) {
pObj = document.all.tags("input")[i];
if (pObj.name == pThis.name) {
break;
}
}
for (var j = 1; j <= pObjCnt; j++){
pNextObj = i + j;
if (document.all.tags("input")[pNextObj].className.substr(document.all.tags("input")[pNextObj].className.length - 2, 2) != "-C"
&& document.all.tags("input")[pNextObj].type == "text"
&& document.all.tags("input")[pNextObj].tabIndex >= 0
&& !document.all.tags("input")[pNextObj].readOnly
&& !document.all.tags("input")[pNextObj].disabled) {
break;
}
}
document.all.tags("input")[pNextObj].focus();
document.all.tags("input")[pNextObj].select();
window.event.cancelBubble = true;
}
}</script><body onload="init();"><table>
<tr>
<td>ID:</td><td><input type="text" name="id" onkeydown="jsAutoMoveText();" size="6" maxlength="4"></td>
<td>FirstName:</td><td><input type="text" name="firstname" onkeydown="jsAutoMoveText();" size="10" maxlength="6"></td>
<td>LastName:</td><td><input type="text" name="lastname" onkeydown="jsAutoMoveText();" size="10" maxlength="8"></td>
<td><input type="button" name="ok" value="ok"></td>
</table>
</body>
</html>
这和测试什么关系,你的要求太多了。既然你是程序员,有些地方自己改一下就行了,有必要别人帮你写到周全吗?
话说的是没错,测试是应该的,可是你是我们的客户吗?不然凭什么搞得像BOSS一样指手画脚?
搞清楚状况,你是程序员,你遇到问题来这求救。
我们给的程序可能不完全符合你的要求,但是一些简单的地方自己改改就好了,这是基本的常识啊!
//////////////////////////////////////////////////////我本来想回复的了,但一看三楼的回复,我就打了退堂鼓。那么多的要求,只给50分,还什么“顶着有分”呢,并且对回复贴提那么苛刻的要求,好象他那50分是50 K RMB似的罢了,罢了,我还是回复20分的问题划得来 : )
代码写的不错,工工整整。这才像一个专业程序员写的。
若是狗,主人家还懂得亲它抱它爱护它,却有几个程序员受到主人家的如此待遇?程序员<=狗一点点小程序都不懂得编,来这里求人还大言不惭,摆POSS款,好像别人都是它的奴隶,必须给它干活似的。人家干得不完美时,居然还像条疯狗似的骂你,如果还有点人性,别人给你一点建议或提示,只要不是错的也应该给别人分一点分。连缩进都没有的程序居然给它加上“工工整整”这样的形容词,岂不可笑?(当然,这可能是CSDN的错)
程序编得有点乱了就不是程序员了吗,我说你是坐井观天。我见过一个函数,函数里面居然包含了13层的各种小功能的子函数,分别放在不同的包含文件中,函数指针跳来跳去的,大括号和缩进也乱七八糟的没点规律,变量的名称让你捉摸不定,更别提注释了,这样的程序让你看几下就头晕,我花了九牛二虎之力才把它读懂(不是吹牛,我这个人研究起问题来很投入的,是种打破沙锅问到底的人)。难道编这个程序的人就不是程序员了?它的那个函数却是不少自认为是“程序员”的人所无法编得出来的呢。工工整整的程序有工工整整的意义,乱七八糟的程序也有乱七八糟的意义,各人的习惯和目的不同,根本就不足以评论。软件工程上的确是教我们编得工工整整,但书本是书本,我们是我们。我没有必要因为书本说太阳是圆的,我就非认为它是圆的不可。
太阳到底是方是圆,根本就与我无关,我想那些蠢才“程序员”是永远领悟不到这种境界的。习惯不了的因为,本人打算不再玩CSDN了,也因此才便于言无忌惮
已经两颗星了,再玩下去也不过两颗星(别人都是几十万分以上的,我哪里赶得上?),况且浪费时间,只有付出,却无所收益,有时费了九牛二虎之力给别人解答还会招来一些混蛋楼主的莫明其妙的指责,又何必呢知道我的信誉分为什么只有93吗?就是忍不住骂了几个象楼主那样的混蛋而给“妹子”扣掉的。知道“妹子”的信誉分为什么高达“704”吗?不知道,我也不知道!
当初“江某民”在位时,声誉也不错的,只是中国官僚日益腐败,贫富日益悬殊也是那时候的癌症。哈哈,有时信口雌黄真有点痛快~!#·~!·