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

web|解决|控制|页面

 
方法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文件所在路径。

注:这个没试,祝好运

时间: 2024-08-03 03:44:24

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

解决WEB页面上焦点控制一法

web|解决|控制|页面 解决WEB页面上"焦点控制"一法 对于B/S的系统,在页面控制上不如C/S系统那么控制灵活,就如输入的焦点问题,客户都很想通过键盘对数据进行录入,这样的要求我想100个客户中会有90个吧. 因此解决焦点获取问题是必要的.大家可以从网上找到一些方法,不过都比较麻烦,我现在介绍一种很方便的.效果也很不错的方法给大家. 我前段时间看了MS的ASP.NET讲座,在里面谈到了如何让"回车键"使文本框的焦点一个个下移.其中提了三种方法,最好的一种是这样

使用CamanJS在Web页面上处理图像的技巧_jquery

你可能会想问既然CSS已经有现成的功能可以支持基础的图像操作了,为什么我们还会想要为此使用一个像这样的 JavaScript 库呢. 好吧,除了有浏览器的支持,使用 CamanJS 有许多的好处.它为我们操作图像提供了更多的过滤器和选项.你可以在你的图像中创建高级过滤器,进而控制其中的每一个像素.你可以使用其内置的混合模式和图层系统.而它也能让你进行图像的跨域操作,并可以对操作产生的图像进行保存. 现在,就让我们来开始探索 CamanJS 所提供的特性吧! 引入必要的文件 要开始使用 Caman

如何在Web页面上直接打开、编辑、创建Office文档

web|创建|页面 有朋友询问如何在Web页面上做到像SharePoint中的效果一样,能直接激活客户端的Word来打开.doc文件,而不是类似直接点击.doc文档链接时Word在IE中被打开那样.想想这个问题应该很多人都会感兴趣,所以干脆写一篇blog来大致描述一下方法. 在安装Office2003以后,有一个ActiveX控件被安装到了系统中,这个控件位于"Program Files\Microsoft Office\OFFICE11\owssupp.dll".通过这个控件,客户端

如何在Web页面上直接打开、编辑、创建Office文档_javascript技巧

如何在Web页面上直接打开.编辑.创建Office文档  有朋友询问如何在Web页面上做到像SharePoint中的效果一样,能直接激活客户端的Word来打开.doc文件,而不是类似直接点击.doc文档链接时Word在IE中被打开那样.想想这个问题应该很多人都会感兴趣,所以干脆写一篇blog来大致描述一下方法. 在安装Office2003以后,有一个ActiveX控件被安装到了系统中,这个控件位于"Program Files\Microsoft Office\OFFICE11\owssupp.d

一个页面上连接两种不同数据库 是否可行

一个页面上连接两种不同数据库,进行操作...不知道,是否可行? 有这可能吗? 当然可以 mssql ConnStr = "driver={SQL Server};server=192.168.1.110;database=news;uid=sa;pwd=123456" Set conn = Server.CreateObject("ADODB.Connection") conn.Open ConnStr mysql set myconn = server.creat

把当前web页面上的所有图片复制到特定目录

web|页面  把当前web页面上的所有图片复制到特定目录,比如C:\imgs\ 转载请注明:作者:糯米糊糊(huyoo353),来源:http://blog.csdn.net/huyoo/ MoreQuick回复: thank,我也不是很精通这方面,不过插件可以用vbscript写的 麻烦你贴代码到论坛上,看是否有人会 thanks! -- Previous Private Message -- Sent by : edward Sent : 2005-03-18 at 7:53pm More

用PHP程序实现支持页面后退的两种方法

用PHP程序实现支持页面后退的两种方法 在开发过程中,往往因为表单出错而返回页面的时候填写的信息都不见了,为了支持页面回跳,可以通过两种方法实现. 第一,使用Header方法设置消息头Cache-control header('Cache-control: private, must-revalidate');  //支持页面回跳 第二,使用session_cache_limiter方法 //注意要写在session_start方法之前session_cache_limiter('private

用VB将第三方控件打成CAB包(在WEB页面上使用)

web|控件|页面 用VB将第三方控件打成CAB包(在WEB页面上使用)由于工作的需要,笔者需要在WEB页面上显示CAD文件(在客户机器上不装CAD).由于时间紧迫,现写控件根本来不及,没办法在网上搜寻了一圈.找到了一个软件,大小大概有8兆左右.可以用来浏览DWG类型的文件.用了一下,发现其用的是一个DLL类型的控件,并带有两个附属的DLL文件. 如果要在WEB页面上使用控件,则控件需要打成CAB类型的包.上网找了一个打CAB包的工具,名字叫IExpress.不过如果用这个工具打包需要手工编写I

jQuery使用hide方法隐藏页面上指定元素的方法

 这篇文章主要介绍了jQuery使用hide方法隐藏页面上指定元素的方法,涉及jQuery使用hide隐藏元素的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了jQuery使用hide方法隐藏页面上指定元素的方法.分享给大家供大家参考.具体如下: 下面的JS代码隐藏了网页中所有<p>标签的内容 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 <!DOCTYPE html> <html> &