基于输入键的 Tabindex 通过获取表单元素在 Jquery 中不起作用
我有一个表单,我可以通过 serializeArray()
获取所有表单元素。 我想使用 Enter 键根据 tabindex 值focus()
关注表单元素。只有当它有价值时,否则就专注于它本身。
对 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();
I have a form, and I am able to get all form elements through serializeArray()
.
I want to focus()
on form elements based on their tabindex value using enter key. Only if it has value in it or else focus on itself.
Little new to jQuery so if any mistakes...
$.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();
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你也可以尝试这个
HTML
脚本
///////////
//////////////////////////////
在 EI、Chrome、Mozilla 中运行良好。未在 safari 和其他浏览器中测试
You can also try this
HTML
SCRIPT
///////////
//////////////
Worked Fine in EI,Chrome, Mozilla . not tested in safari and other browser
我想我明白你想做什么。我重写了你的代码并最终得到了这个:
jsFiddle 上有一个工作示例。
I think I understand what you want to do. I rewrote your code and ended up with this:
There's a working example on jsFiddle.