我的表单中有多个文本字段,我希望当用户在一个文本字段中输入数据并按Enter键时,光标会移动到当前文本字段旁边的另一个文本字段。我访问了一些问题,但没有发现它们有用。
$("#username").keypress(function (event) {
alert("inside function");
if(event.keyCode == 13) {
textboxes = $("input.username");
debugger;
currentBoxNumber = textboxes.index(this);
if (textboxes[currentBoxNumber + 1] != null) {
nextBox = textboxes[currentBoxNumber + 1];
nextBox.focus();
nextBox.select();
event.preventDefault();
return false;
}
}
});
这是我的代码,我尝试了另一件事,即当在最后一个文本字段中输入数据时,该表单将在鼠标单击按钮而不是回车时提交。
这应该工作:
$(".username").keyup(function (event) {
if (event.keyCode == 13) {
textboxes = $("input.username");
currentBoxNumber = textboxes.index(this);
if (textboxes[currentBoxNumber + 1] != null) {
nextBox = textboxes[currentBoxNumber + 1];
nextBox.focus();
nextBox.select();
}
event.preventDefault();
return false;
}
});
ENTER并非keypress
在所有浏览器中都触发,keyup
而是使用。还将eventlistener附加到每个input
包装上,而不是包装上。
您的带有事件委托的代码也可以进行一些改动:
currentBoxNumber = textboxes.index(event.target);
this
在上面的句子就指包装代替input
,event.target
是指触发事件的实际元素。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句