#jquery
#jquery
Вопрос:
Привет, я пытался создать форму отправки jquery ajax, и в настоящее время я пытаюсь установить ограничения для отправки формы. я хочу, чтобы пользователь нажимал enter, чтобы отправить форму, а не нажимал кнопку отправки, но только тогда, когда пользователь фокусируется на текстовом поле / поле ввода, которое он отправит, когда он / она нажмет enter!
я попытался создать свой собственный код и отредактировать его, чтобы посмотреть, что работает, и я разобрался с этим кодом, но он работает не совсем хорошо: (
$('.addformtextarea').focus(function() {
$(document).keyup(function(e){
switch (e.keyCode) {
case 13: //enter
//code to be
break;
}
});
.addformtextarea — это текстовая область, на которой нужно сосредоточиться.
и возвращает false; ведет себя так же, как break; ? потому что у меня есть возвращаемое значение false; прямо перед разрывом;
спасибо: D
Ответ №1:
Вероятно, вам было бы лучше привязаться к keyup
событию ввода:
$(".addformtextarea").keyup(function(e) {
switch (e.which) {
case 13: //enter
//code to be
break;
}
});
Обратите внимание, что я использовал which
вместо keyCode
. Это просто потому, что jQuery нормализует объект события, чтобы устранить любые межбраузерные несоответствия.
Проблема с вашим текущим кодом заключается в том, что после запуска focus
события keyup
событие привязывается к document
и будет срабатывать независимо от того, имеет элемент фокус или нет.
Ответ №2:
Попробуйте это:
$('textarea').keydown(function(e) {
if (e.which == 13) {
alert('You pressed enter');
// $('your_form').submit();
}
});
Если пользователь вводит текстовую область, разве она не будет сфокусирована? Мне не очень нравится избыточность.
Демонстрация: http://jsfiddle.net/cjTu9/4 /
Ответ №3:
Попробуйте это:
$('.addformtextarea').keyup(function(e){
switch (e.keyCode) {
case 13: //enter
//code to be
return false;
}
});
Вам не нужно беспокоиться о фокусе, потому что ввод будет срабатывать только в том случае, если ввод имеет фокус.
Разрыв только выходит из переключателя, вам нужно вернуть false, чтобы предотвратить автоматическую отправку, если вы делаете это с помощью кода.
Комментарии:
1. большое спасибо! и спасибо, что ответили на мой 2-й вопрос return false не связан с переключателем / регистром? это хорошая новость 🙂 и теперь это работает: D
2. рассмотрите возможность использования события. который вместо event.keyCode