manut
(Manuel Tancoigne)
05.Декабрь.2025 14:22:00
1
На ветке main в Discourse (61e0db0e80) при отправке формы настроек пользователя нажатием клавиши «Enter» (например, после изменения имени) форма отправляется стандартным способом.
Это приводит к GET-запросу на ту же страницу, и изменения не сохраняются в базе данных.
Шаги для воспроизведения:
Перейдите на страницу настроек.
Введите или измените имя.
Нажмите Enter.
Страница перезагружается.
chapoi
05.Декабрь.2025 14:59:21
2
У меня на Meta воспроизвести не удалось, только что проверил — всё работает как положено.
Не могли бы вы проверить это тоже?
manut
(Manuel Tancoigne)
05.Декабрь.2025 15:19:11
3
Конечно, мне удалось воспроизвести это в:
Firefox ESR v140.5.0esr — 64-разрядная версия в чистом профиле (без плагинов, без пользовательских настроек)
Chromium v142.0.7444.175 со всеми отключёнными плагинами
Я использую Debian 13, и оба браузера получены из репозитория Debian.
1 лайк
chapoi
05.Декабрь.2025 16:55:23
4
Очень странно, у меня в браузере не воспроизводится (Firefox 45.0.2 / Chromium: 143.0.7499.40).
Когда вы говорите
мне кажется, что вы тестируете это не на Meta?
Кстати, я могу воспроизвести это на meta
Когда я ввожу своё имя и нажимаю «Enter», страница перезагружается, а значение очищается.
Предполагаю, что изменения не были сохранены, так как я не успел нажать эту кнопку до перезагрузки страницы?
Дополнение: Проблема наблюдается и в Firefox, и в Chrome (на рабочем столе под Windows).
1 лайк
chapoi
05.Декабрь.2025 17:14:49
6
Окей, хорошо знать. Интересно, почему у меня не воспроизводится
Не знаю
Но если бы вы могли воспроизвести проблему, что бы вы искали? Я могу попробовать снова и посмотреть, смогу ли предоставить вам информацию.
ETA: Я заметил, что при перезагрузке к URL на короткое время добавляется «?», если это имеет значение?
1 лайк
sam
(Sam Saffron)
08.Декабрь.2025 01:12:52
8
Это на 100% воспроизводится в чистой среде dv.
В последней версии Chrome:
dv new enter-submit
http://enter-submit.localhost/session/user1/become
перейдите по ссылке
http://enter-submit.localhost/u/user1/preferences/account
измените имя
нажмите Enter
Страница перезагружается.
Как вы относитесь к такому решению @martin / @j.jaffeux в /frontend/discourse/app/controllers/preferences.js:
@action
preventSubmit(event) {
event?.preventDefault();
}
<form class="form-vertical" {{on "submit" this.preventSubmit}}>
{{outlet}}
</form>
</section>
Довольно странно, что в этом конкретном случае у нас есть форма, которая на самом деле не является формой.
2 лайка
manut
(Manuel Tancoigne)
08.Декабрь.2025 08:06:55
9
Я имел в виду «со всеми расширениями браузера отключёнными» (я использую множество вещей, которые могут нарушать исходное поведение веб-сайта).
Я тестировал оба варианта и на Meta, и в чистой новой среде разработки.
1 лайк