Javascript在表单提交到选项卡上输入
Javascript在输入类型文本上获取按键“Enter”事件 我有3个文本输入,1个下拉列表和10行 第1行的3个文本输入的标识符为_1,第2行的下拉列表后跟_2 我想要实现的是:Javascript在表单提交到选项卡上输入,javascript,jquery,html,Javascript,Jquery,Html,Javascript在输入类型文本上获取按键“Enter”事件 我有3个文本输入,1个下拉列表和10行 第1行的3个文本输入的标识符为_1,第2行的下拉列表后跟_2 我想要实现的是: Textfield1 ------> left_1 Textfield2 ------> center_1 Textfield3 ------> right_1 DropdownList ----> dd_1 当我在left\u 1上按enter键时,我想将enter事件更
Textfield1 ------> left_1
Textfield2 ------> center_1
Textfield3 ------> right_1
DropdownList ----> dd_1
当我在left\u 1
上按enter键时,我想将enter事件更改为center\u 1
,而如果我在center\u 1
上输入事件,它将切换为right\u 1
如果我在right\u 1
处输入event,它将转到下一行left\u 2
问题通常是,如果在右侧按“tab”键,它将聚焦到dd\u 1
下一个关键问题是,我在表单中得到了一个提交按钮,如果我在任何表单上按enter键,它将只提交表单。在禁用enter之前,我尝试使用检查事件代码和阻止默认值来禁用enter,但这样做时,我仍然无法将enter更改为关注上面提到的文本字段
输入后,我需要能够在最后一次输入时转到第一行的第2行。对于选项卡导航,我建议转到
您的问题似乎有两种聚焦输入元素的模式
通过回车键
通过制表键
正如我已经建议的,继续使用tabindex
为了避免在enter键和#2用例上提交表单,下面的方法将完成这项工作
$(function () {
$("form :input").on("keypress", function (e) {
var nextIndex = $(this).prop('tabindex') + 1; // from above answer
$('[tabindex=' + nextIndex + ']').focus();
return e.keyCode != 13; // this will ensure to prevent form submit
});
});
使用tabindex属性:
并更新脚本以使用其值进行导航:
var nextIndex = $(this).prop('tabindex') + 1;
$('[tabindex=' + nextIndex + ']').focus();
完整示例:
如果你想现在就这样做。
您可以调整一些javascript
if(e.keyCode == "13"){
var id = $(this).attr('id');
if(id.indexOf("right") > -1){
var number = id.split('_')[1];
number++;
$("#left_"+number).focus();
}else{
$(this).next().focus();
}
}
您的JSFIDLE可以工作,但我只想禁用表单提交按钮的enter,现在我也不能单击表单提交按钮:),是否可以允许单击表单提交,但禁用enterkey@user3412075看,我已经更新了,是否可以通过鼠标单击启用表单提交,我只想禁用回车键这是可能的,如果你改变了向下键或按键键向上键。然后需要添加e.preventDefault();在if函数中。看这把小提琴如果你喜欢这个答案,请接受它。