解决WEB页面上
类别: ASP教程
方法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文件所在路径。
注:这个没试,祝好运
用客户端脚本在页面添加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文件所在路径。
注:这个没试,祝好运
- 上一篇: 防止用户上传产生无效文件源码
- 下一篇: 比较方便的ASP分页程序
-= 资 源 教 程 =-
文 章 搜 索