<script language="JavaScript">
<!--
// 用途:enter 转化成tab
//使用:onload ="initEnter2Tab()" form标记加上 <form name="frm" type="enter2tab">...</form>
var isCycle = false; //当光标到最后一个元素的时候,是否循环光标焦点,
var iCurrent = -1;
var frmName = "0"//input_form
//
function enterToTab() //网页里按回车时焦点的转移
{
var e = document.activeElement;
if(e == null) return false;
//获得当前表单的名字
for(i=0;i<document.forms.length;i++){
for(var el in document.forms[i].elements){
if(e.UniqueID == el.UniqueID){
frmName = document.forms[i].name
}
}
}
if(window.event.keyCode == 13)
{
switch(e.tagName)//标签类型
{
case "INPUT":
handleInput(e)
break;
case "SELECT":
handleSelect(e)
break;
case "TEXTAREA":
handleTextarea(e)
break;
default:
//window.status = "未知的标签名称:"+e.tagName+",不能移动焦点!"
}
}// end if
}
//处理input 标签类型
function handleInput(e)
{
switch(e.type)
{
case "text":
case "password":
case "checkbox":
case "radio":
case "file":
moveFocusToNextElement(e)
break;
case "submit"://处理有提交按钮的情况
case "button":
if(isHandleSubmit(e)){
handleSubmit(e)
focusOnNextElement(document.forms[frmName].elements,iCurrent-1)
break;
}
moveFocusToNextElement(e)
break;
default:
}
}
//处理select 标签类型
function handleSelect(e)
{
moveFocusToNextElement(e)
}
//处理textarea 标签类型
function handleTextarea(e)
{
moveFocusToNextElement(e)
}
//移动到下一个元素
function moveFocusToNextElement(e)
{
var oE = document.forms[frmName].elements, iCurentPos=-1;
for(var i=0; i<oE.length; i++)
{
if(oE[i] == e) iCurentPos = i;
if(iCurentPos>-1 && iCurentPos+1<oE.length)
{
//把焦点设置到下一个可用的元素上
focusOnNextElement(oE,iCurentPos)
}
}
}
//下一个可用元素得到焦点 n 元素的位置
function focusOnNextElement(oElements,iIndex)
{
var oE = oElements
var oldIndex = iIndex
while(oE[iIndex+1].type =="hidden" || oE[iIndex+1].disabled || oE[iIndex+1].readOnly == true || oE[iIndex+1].style.display == "none")
{
/*
window.status += "e.name = "+oE[iIndex+1].name
window.status += ";e.type = "+oE[iIndex+1].type
window.status += ";e.disabled = "+oE[iIndex+1].disabled
window.status += ";e.readOnly = "+oE[iIndex+1].readOnly+"."
*/
iIndex++;
if(iIndex+1 == oE.length)
{
if(isCycle){//设置焦点在第一元素
focusOnNextElement(oE,-1)
}
return;
}
}//end while
iCurrent = iIndex+1
oE[iCurrent].focus();
window.event.keyCode = 0;
window.event.returnValue= false;
return;
}
//处理当前元素
function handleSubmit(element)
{
element.click()
return;
}
//判断是否处理提交
function isHandleSubmit(element)
{
var ret = false;
if(element !=null && (element.id.toUpperCase() == "SUBMIT" || element.name.toUpperCase() == "SUBMIT" || element.isSubmit)){
ret = true;
}
return ret;
}
//初始化 initEnter2Tab()
function initEnter2Tab()
{
for(i=0;i<document.forms.length;i++){
if(document.forms[i].type !=null && document.forms[i].type == "enter2tab"){
document.forms[i].onkeydown = function f(){enterToTab();};
}
}
//文档初始化焦点
if(document.forms[0].elements != null)
focusOnNextElement(document.forms[0].elements,-1)
}
//-->
</script>
<body onload="initEnter2Tab()">
<form method=post action="" type="enter2tab" name="aa">
<input type="text" name=""><input type="text" name=""><input type="submit">
</form>
分享到:
相关推荐
函数和网上的一些代码,弄了一个可以满足上述需求的解决方案,它的特性包括: <br/> 全部JavaScript代码都封装在了一个用户控件"EnterAsTab_SubPage.ascx"中,哪个页面想要回车变Tab或者屏蔽掉回车键只要把...
用回车键代替TAB。
回车换Tab 方便,实现tab功能,屏蔽回车提交
js 实现 Enter键实现Tab键功能! 值得下载看看!资源免费,大家分享!!
主要介绍了javascript通过回车实现tab切换功能,需要的朋友可以参考下
enter键替换tab键!JS文件,使用时需要初始化,各标签最好能标识TableIndex更容易控制,具体操作可参考我的博客文章
关键之处在于tabindex,其设计思想是:为每个表单元素设置一个tabindex,其值分别为前一个表单元素的tabindex的值加一,函数的功能就是当用户按下回车键时先将当前tabindex的值加一,而后逐一与每个表单元素的...
if(event.keyCode==13 && event.srcElement.type!='button' && event.srcElement.type!='submit' && event.srcElement.type!='reset' && event.srcElement.type!='textarea' && event.srcElement.type!...
近期在做一个Web项目,我使用DevExpress第三方控件。 由于该控件使用技巧中文资料... 首先,得准备要模拟Tab的JS代码,这网上很多,我随便D了一个,试试有用,贴出如下: 代码如下://回车键模拟tab 在onkeydown中 func
Ext.net Enter实现Tab功能
回车键按下时,自动以Tab键方式在文本输入框之间进行焦点切换的JavaScript代码
介绍了Enter转换为Tab的小例子(兼容IE,Firefox),有需要的朋友可以参考一下
jquery.ya-enter2tab.js世界上已经有一堆“进入标签”插件,但仍然很难找到一个完全符合我需求的插件。 所以,“Yet Another Enter to Tab”jQuery 插件就在这里。 :P 它提供以下功能: 让用户使用“enter”而不是...
在文本框中输入完内容后,经常需要按回车,焦点跳到下个文本框,或者触发按钮事件
7.2 回车实现Tab键功能 7.3 Ctrl+Enter提交数据 7.4 IE中屏蔽退格建(Back Space) 7.5 屏蔽键盘所有键 7.6 JavaScript捕获方向键 7.7 状态栏变化信息 7.8 状态栏的跑马灯效果 7.9 状态栏缩放文字 7.10 状态栏文字...
7.2 回车实现Tab键功能 7.3 Ctrl+Enter提交数据 7.4 IE中屏蔽退格建(Back Space) 7.5 屏蔽键盘所有键 7.6 JavaScript捕获方向键 7.7 状态栏变化信息 7.8 状态栏的跑马灯效果 7.9 状态栏缩放文字 7.10 状态栏文字...
案例1:回车实现Tab跳转。 响应文本框的onKeyDown事件,window.event.keyCode获得用户点击的keyCode。 (*)keyCode和ASCII不是完全一致,主键盘的1和小键盘的1的ASCII一样,但是keyCode不一样。回车的keyCode为 13...
一个非常简单的扩展,可以在HTML或XML标签之间添加换行符和制表符,就像Aptana Studio 3一样,并使用JavaScript和PHP括号以及CSS和预处理器来增强行为。如何使用简单的代码,如果你的光标是允许的缩进字符之间( >&...
回车转换成Tab DataGrid超级连接列 DataGrid行随鼠标变色 数字格式化 日期格式化 打开新的窗口并传送参数 为按钮添加对话框 删除表格选定记录 删除表格记录警告 关于日期格式 表格超连接列...