Форма отправки на keyCode == "enter" (13) - PullRequest
6 голосов
/ 10 января 2012

Мне нужно отправить содержимое формы, когда я нажимаю клавишу Enter , но только если в форме нет сообщения об ошибке.Я создал следующую функцию:

$(targetFormID).submit(function (e) {
    var mess = error_m(targetDiv);
    if (e.keyCode == 13 && mess.length > 0) {
        e.preventDefault();
        e.stopPropagation();
    }
    if (mess.length == 0 && e.keyCode == 13) $(targetFormID).submit();
}); 

В этой функции переменная mess получает сообщение об ошибке, возвращаемое функцией error_m, остальное - простое условие кода, но оно не работает.

Нужна помощь с этим !!

1 Ответ

7 голосов
/ 10 января 2012

Отправка формы при нажатии клавиши Enter является поведением браузера по умолчанию. Не связывайтесь с этим. Просто подтвердите форму в событии submit.

$(targetFormID).submit(function (e) {
    var mess = error_m(targetDiv);
    if (mess.length > 0) {
        e.preventDefault();
    }
});

Еще одна возможная проблема: что такое targetFormID? Если это на самом деле строка, содержащая идентификатор элемента, вам понадобится

$("#" + targetFormID).submit(/* Same function as above */);

Если это ссылка на элемент формы, тогда $(targetFormID) в порядке, но ваша переменная неверно названа.

...