I've blocked Enter (return) key, actually, transformed it in Tab key. So when pressed inside input text fields it acts as Tab key. This is good, but I need it to trigger the submit button when pressed in the last field, below is the code for the Enter key mutation:
我屏蔽了Enter(返回)键,实际上,在Tab键中转换了它。因此,当在输入文本字段中按下时,它充当Tab键。这很好,但我需要它在最后一个字段中按下时触发submit按钮,下面是输入键突变的代码:
$('input').keydown(function(event) {
if(event.which == 13) {
event.preventDefault();
$(this).nextAll('input:first').focus();
}
});
And the form code is a sequence of input type="text" and a button type="submit" at the end [Edited] Actually the code is this one, taken from jquery: Enter to Tab trigger in specific parts. But I don't know why it was working yesterday today is not working:
表单代码是输入类型=“text”的序列,在最后[编辑]的按钮类型=“submit”实际上,代码是这个,取自jquery: Enter to Tab触发器的具体部分。但是我不知道为什么它昨天起作用了今天却不起作用:
$(':text').keydown(function(e) {
if(e.keyCode == 13 && $(this).attr('type') != 'submit') {
e.preventDefault();
$(this).nextAll('input:first').focus();
}
});
2 个解决方案
#1
6
If you give your last input the class of last then simply modify your code to something like
如果你给出最后一个输入,那么你就可以简单地修改你的代码。
$('input').keydown(function(event) {
if(!$(this).hasClass("last")){
if(event.which == 13) {
event.preventDefault();
$(this).nextAll('input:first').focus();
}
}
});
#2
-1
// Definir o que acontece quando o usuário pressiona ENTER
$('input, select, textarea').live('keydown', function(e) { // Para todos os campos do formulário
if (e.which == 13) { // Se pressionou ENTER
if (e.ctrlKey) { // Se pressionou CTRL
$(this).closest('form').submit(); // Envia o formulário
} else { // Se não
var fields = $(this).closest('form').find('input, select, textarea'); // Criamos uma lista dos campos do formulário
var total = fields.length; // Identificamos a quantidade de campos
var index = fields.index(this); // Identificamos a posicao do campo atual
fields // Da lista de campos, ...
.eq( // na posicao ...
index + // do campo atual + ...
(e.shiftKey // Pressionou a tecla SHIFT?
? // Se pressionou ...
(index > 0 // A posição atual é maior que 0 (zero)?
? // Se for maior
-1 // campo anterior
: // Se não ...
0 // Primeiro campo
)
: // Se não ...
(index < total // Posicao atual é menor que o total de campos?
? // Se for menor ...
+1 // proximo campo
: // Se não ...
total // Último campo
)
)
// Neste momento ja encontramos o campo que deverá ser selecionado
).focus(); // Selecionamos o campo
return false; // Impedimos que a ação padrão seja executada (Envio do formulário)
} // FIM - se não pressionou CTRL
} // FIM - se pressionou ENTER
}); // FIM da função
#1
6
If you give your last input the class of last then simply modify your code to something like
如果你给出最后一个输入,那么你就可以简单地修改你的代码。
$('input').keydown(function(event) {
if(!$(this).hasClass("last")){
if(event.which == 13) {
event.preventDefault();
$(this).nextAll('input:first').focus();
}
}
});
#2
-1
// Definir o que acontece quando o usuário pressiona ENTER
$('input, select, textarea').live('keydown', function(e) { // Para todos os campos do formulário
if (e.which == 13) { // Se pressionou ENTER
if (e.ctrlKey) { // Se pressionou CTRL
$(this).closest('form').submit(); // Envia o formulário
} else { // Se não
var fields = $(this).closest('form').find('input, select, textarea'); // Criamos uma lista dos campos do formulário
var total = fields.length; // Identificamos a quantidade de campos
var index = fields.index(this); // Identificamos a posicao do campo atual
fields // Da lista de campos, ...
.eq( // na posicao ...
index + // do campo atual + ...
(e.shiftKey // Pressionou a tecla SHIFT?
? // Se pressionou ...
(index > 0 // A posição atual é maior que 0 (zero)?
? // Se for maior
-1 // campo anterior
: // Se não ...
0 // Primeiro campo
)
: // Se não ...
(index < total // Posicao atual é menor que o total de campos?
? // Se for menor ...
+1 // proximo campo
: // Se não ...
total // Último campo
)
)
// Neste momento ja encontramos o campo que deverá ser selecionado
).focus(); // Selecionamos o campo
return false; // Impedimos que a ação padrão seja executada (Envio do formulário)
} // FIM - se não pressionou CTRL
} // FIM - se pressionou ENTER
}); // FIM da função