Пресс-мероприятие клавиши Enter в JavaScript

У меня есть a form с двумя текстовыми полями, один выпадающий выбор и один переключатель. Когда клавиша Enter нажимается, я хочу вызвать (Определяемую пользователем) функцию JavaScript, но когда я нажимаю ее, форма отправлена.

Как я предотвращаю form от того, чтобы быть отправленным, когда клавиша Enter нажимается?

303
задан Brian Tompsett - 汤莱恩 26 August 2019 в 00:08
поделиться

3 ответа

if(characterCode == 13)
{
    return false; // returning false will prevent the event from bubbling up.
}
else
{
    return true;
}

Итак, представьте, что у вас есть следующее текстовое поле в форме:

<input id="scriptBox" type="text" onkeypress="return runScript(event)" />

Чтобы запустить какой-то «пользовательский» сценарий из этого текстового поля при нажатии клавиши ввода, и не иметь он отправляет форму, вот некоторый образец кода. Обратите внимание, что эта функция не проверяет ошибки и, скорее всего, будет работать только в IE. Чтобы сделать это правильно, вам нужно более надежное решение, но вы получите общую идею.

function runScript(e) {
    //See notes about 'which' and 'key'
    if (e.keyCode == 13) {
        var tb = document.getElementById("scriptBox");
        eval(tb.value);
        return false;
    }
}

возврат значения функции предупредит обработчик событий, чтобы он больше не всплывал, и предотвратит обработку события нажатия клавиши далее.

ПРИМЕЧАНИЕ:

Было указано, что keyCode равен , теперь устарел . Следующая лучшая альтернатива , которая имеет , также устарела .

К сожалению, популярный стандартный ключ , который широко поддерживается современными браузерами, имеет некоторую хитрость в IE и Edge . Для всего, что старше IE11, все равно потребуется полифилл .

Кроме того, хотя устаревшее предупреждение довольно зловещее в отношении keyCode и , которые , их удаление будет представлять собой массивные критические изменения в бесчисленном количестве устаревших веб-сайтов. По этой причине маловероятно, что они собираются куда-нибудь в ближайшее время.

413
ответ дан 23 November 2019 в 01:23
поделиться
<form id="form1" runat="server" onkeypress="return event.keyCode != 13;">

Добавляют этот Код В Вашей СТРАНИЦЕ HTML... это отключит... Введите Кнопку..

0
ответ дан 23 November 2019 в 01:23
поделиться

Замените действие onsubmit формы на вызов вашей функции и добавьте после него return false, например:

<form onsubmit="javascript:myfunc();return false;" >
17
ответ дан 23 November 2019 в 01:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: