Только что сделал это при вводе-отправке скрипта формы jQuery. Перед тем, как начать флуд "Разве это уже не делает это?" - да, если у вас есть кнопка фактической отправки, она делает.
Но я использую <a>
теги в виде кнопок для отправки формы. Если javascript не отключен, <noscript>
покажет фактическую стандартную кнопку подтверждения.
Он должен обрабатывать функцию автозаполнения по умолчанию в браузерах, временно отключая автозаполнение при нажатии клавиш со стрелками вверх / вниз, что приведет к увеличению / уменьшению списка автозаполнения.
Если вы видите какие-либо предостережения или у вас есть идеи по улучшению, они будут высоко оценены.
Вот сценарий
// Submit form if focus on inputfields and enter is pressed
// To handle autocomplete, we disable next enter if arrow up/down pressed and autocomplete is not turned off
$('form input:text, form input:password').keyup(function(e){
var arrowKeys = new Array(38, 40);
var key = e.charCode || e.keyCode || 0;
if(key == 13){
if($(this).data('entersubmit')) {
e.preventDefault();
$(this).closest('form').submit();
return false;
}
$(this).data('entersubmit', true);
} else if($.inArray(key, arrowKeys) > -1) {
if($(this).attr('autocomplete') != 'off') {
$(this).data('entersubmit', false);
}
}
})
.blur(function(){
$(this).data('entersubmit', true);
})
.focus(function(){
$(this).data('entersubmit', true);
});