分享
 
 
 

解决WEB页面上"焦点控制"2种方法--如回车使光标在在TEXTBOX之间移动(从网上获得)

王朝asp·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

方法1:from 听棠.NET

用客户端脚本在页面添加document的onkeydown事件,让页面在接受到回车事件后,进行Tab键的功能,即只要把event的keyCode由13变为9

VBScript代码:

<script language="vbscript">

sub document_onkeydown

if event.keyCode=13 then

event.keyCode=9

end if

end sub

</script>

Javascript代码如下:

<script language="javascript" for="document" event="onkeydown">

<!--

if(event.keyCode==13)

event.keyCode=9;

-->

</script>

这样的处理方式,可以实现焦点往下移动,但对于按钮也起同样的作用,一般的客户在输入完资料以后,跳到按钮后,最好能直接按"回车"进行数据的提交.因此,对上面的方法要进行一下修改,应该对于"提交"按钮不进行焦点转移.而直接激活提交.

因此我对上面的代码进行了一个修改,即判断事件的"源",是否为提交按钮,代码如下:

<script language="javascript" for="document" event="onkeydown">

<!--

if(event.keyCode==13 && event.srcElement.type!='button' && event.srcElement.type!='submit' && event.srcElement.type!='reset' && event.srcElement.type!='textarea' && event.srcElement.type!='')

event.keyCode=9;

-->

</script>

注:这个方法真的很好,试验成功的

方法2:

围绕我们要解决的问题,这里我们重点提一下Document、Form、Elements三个对象及Onkeypress事件,Document 文档对象:是指描述当前窗口或指定窗口对象的文档。它包含了文档从<head>到</body>的内容。用法:document (当前窗口)或 <窗口对象>.document (指定窗口) ; Form 对象:document.forms[] 是一个数组,包含了文档中所有的表单Form ;Elements对象:为表单元素对象,<表单对象>.elements 是一个数组,包含了该表单所有的对象;Onkeypress事件是一个键盘事件,是在用户按下键盘上的键时引发的事件。通过这三大对象再配合Onkeypress事件就可以完成现我们的要求;

下面是最终的实现代码清单:

var JumpTypeArray =new Array("text","password","textarea","checkbox","radio",

"select","select-one","select-multiple","file")//引用页面上可获得焦点元素类型

var DebarTypeArray =new Array("submit","reset","button","checkbox","radio",

"select","select-one","select-multiple","hidden")//引用页面上需排除元素类型

function inStrArray(src,dec)

{//检查给定串是否在指定字符串数组中,如在返回索引号,否返回-1;

for (var i=0 ; i<dec.length; i++)

{

if (src==dec[i])

{

return i;//定位成功,返回索引号

break;

}

}

return -1; //定位失败,返回-1

}

function checkCR(evt)

{//回车响应函数

var evt = (evt) ? evt : ((event) ? event : null);

var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);

var frm=document.forms[0]; //指定FORM名称为页面中的第一个

if ((evt.keyCode == 13) && (inStrArray(node.type,JumpTypeArray)!=-1))

{//判断当前对象是否为可输入对象,对象类型数组:JumpTypeArray

for (var i = 0 ; i < frm.elements.length; i++)

{//for begin

if (frm.elements[i].name==node.name)

{//定位当前对象

if ((i+1)< frm.elements.length)

{//对象数组索引越位判断

if (inStrArray(frm.elements[i+1].type,JumpTypeArray)!=-1)

{ //判断当前对象下一个对象是否为可输入组件,对象类型数组:JumpTypeArray

frm.elements[i+1].focus();//设置焦点

if (inStrArray(frm.elements[i+1].type,DebarTypeArray)==-1)

{ //过滤不可选中文本对象,对象类型数组:DebarTypeArray

frm.elements[i+1].select();//选中组件文本内容

}

}

return false;//禁止提交表单内容

break;

}

else

{//提交表单内容

return true;

break;

}

}

}//end for

}

}

document.onkeypress = checkCR;

引用说明:将上面的代码存成文件,如:WebEnter.js,然后在要实现回车换行的页面中写上:

<script language="JavaScript" src="path+WebEnter.js"></script> 即可。

Path:是WebEnter.js文件所在路径。

注:这个没试,祝好运

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有