Чистый способ предотвратить ввод кнопки отправки формы - PullRequest
19 голосов
/ 21 апреля 2011

Я видел множество Javascript-решений для этого, но я уверен, что должен быть более простой способ.

У меня действительно простая форма - одно многострочное текстовое поле и кнопка отправки. Я хочу, чтобы пользователь мог отправлять «форматированный» текст (например, электронное письмо, с абзацами, новыми строками и т. Д.)

Однако, когда пользователь нажимает Enter, чтобы вставить возврат каретки, он отправляет форму.

Я там должен быть свойство или что-то, что контролирует это, так как это должно быть распространенной проблемой. Javascript как решение кажется слишком сложным.

Ответы [ 6 ]

21 голосов
/ 26 сентября 2014

Установите свойство UseSubmitBehavior для кнопки отправки на FALSE .(нашел решение здесь )

12 голосов
/ 11 февраля 2014

Следующий код решил мою проблему:

http://www.itorian.com/2012/07/stop-from-submission-posting-on-enter.html

<script type="text/javascript">
    //Stop Form Submission of Enter Key Press
    function stopRKey(evt) {
        var evt = (evt) ? evt : ((event) ? event : null);
        var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
        if ((evt.keyCode == 13) && (node.type == "text")) { return false; }
    }
    document.onkeypress = stopRKey;
</script>

Поместите это на главную страницу или просто на нужные вам страницы.

5 голосов
/ 21 апреля 2011

Вы можете установить DefaultButton в Форме или на Панели, окружающей ваш TextBox, на невидимую (отображение: нет) кнопку.Таким образом, у вас есть полный контроль над тем, что происходит, когда пользователь нажимает клавишу ввода без (зависящего от браузера) Javascript.Если вы не обработаете событие onclick, клавиша ввода будет подавлена.

http://geekswithblogs.net/ranganh/archive/2006/04/12/74951.aspx

2 голосов
/ 25 февраля 2019

Использование поведения Отправить не работает для меня, но это

 $(function () {
        $(window).keydown(function (e) {
            if (e.keyCode == 13) {
                e.preventDefault();
                return false;
            }
        });
    })

работает для меня

1 голос
/ 21 апреля 2011
0 голосов
/ 18 октября 2016

В HTML-интерфейсе просто замените тег body на body onkeydown = "return (event.keyCode! = 13)

...