【发布时间】:2011-06-05 16:38:48
【问题描述】:
我有一个表单,我可以通过serializeArray() 获取所有表单元素。
我想focus() 使用输入键根据它们的 tabindex 值在表单元素上。只有当它有价值或专注于它自己。
对 jQuery 不太熟悉,所以如果有任何错误...
$.fn.entertab = function()
{
var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
var maxTabIndex = 20;
var elements = this.serializeArray();
$.each(elements, function(i, element)
{
this.keypress(function(e){
var nTabIndex=this.tabIndex;
var myNode=this.nodeName.toLowerCase();
if(nTabIndex > 0 && key == 13 && nTabIndex <= maxTabIndex && ((!myNode.attr("disabled")) || (myNode.val == "")))
{
myNode.focus();
}
else
{
nTabIndex=this.tabIndex+1;
myNode.focus();
}
});
});
}
$("theform").entertab();
【问题讨论】:
-
您能提供您正在使用的 HTML 吗?直到几个建议:移动 var key... 在 this.keypress 函数中,使用 onload/ready 状态启动 entertab(): $(function(){/*这里是代码*/});并且您使用的是“theform”,这不是标签名称,如果它是类名,则使用 $(".theform").entertab();