como evitar que o formulário seja enviado apenas se detectar um erro

Dec 05 2020

Estou tentando evitar que o formulário seja enviado apenas quando encontro um erro

eu tenho essa função vinculada ao meu formulário onSubmit

const submitHandler = async (e) => {
        e.preventDefault();
        try {
            const submitForm = await axios.post(
                "http://localhost:5000/users/register",
                info
            );
            setError("");
        } catch (error) {
            const err = error.response.data.msg;
            setError(err);
            // display the msg on screen
        }
    };

agora eu tenho e.preventDefault () na parte superior que irá interromper o formulário e exibir a mensagem de resposta, mas eu só quero que isso aconteça se houver um erro no "catch"

caso contrário, eu quero que ele envie e faça outra coisa, como redirecionar para a página de login

Respostas

M11CH Dec 05 2020 at 01:48

No bloco try, você pode usar o .submit()método jQuery com o ID do formulário:

$("#ID").submit();

Se você não estiver usando jQuery, você pode usar vanilla JS:

document.getElementById("myForm").submit();