Как перехватить отправку формы в websocket-соединении?

Я "унаследовал" фрагмент кода из приложения для чата. Я хотел бы добавить некоторые пользовательские проверки пользовательского ввода при отправке, позволяющие при необходимости прервать отправку на стороне клиента. Я создал javascript-функцию обработчика отправки для выполнения проверок и преобразований, включая preventDefault в качестве первой инструкции:

async handleSubmit(event) {

    event.preventDefault(); // Prevent default form submission
...

Я привязал обработчик к форме:

<form
    class="pg-chat-input-bar"
    ws-send
    @submit="handleSubmit($event)"
    enctype="multipart/form-data"
>

Однако, несмотря ни на что, форма отправляется немедленно после нажатия кнопки отправки. Сервер получает форму параллельно с выполнением обработчика или до него. Я могу оценить, что обработчик запущен и выполняет то, что должен, но, к сожалению, форма уже отправлена. Я пробовал @submit.prevent, @submit.stop и даже объединил оба, но это не изменило результата. Я нашел много сообщений с просьбой перехватить / прерывать отправку формы, но решения такие же простые, как и те, что я пробовал. Что я делаю не так?

Поскольку я не начинаю с нуля, я бы предпочел как можно меньше изменять код и использовать то, что уже есть. Может ли это быть связано с тем, как работает WebSocket? Я не слишком хорошо с этим знаком.

Благодаря добавлению задержки к триггеру (приведенный ниже код в атрибутах формы) все работало должным образом при вызове обработчика и предотвращении поведения по умолчанию.

hx-trigger="submit delay:1ms"
Вернуться на верх