cómo evitar que el formulario se envíe solo si detecta un error

Dec 05 2020

Estoy tratando de evitar que el formulario se envíe solo cuando detecto un error

tengo esta función vinculada a mi formulario 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
        }
    };

ahora mismo tengo e.preventDefault () en la parte superior que detendrá el formulario y mostrará el mensaje de respuesta, pero solo quiero que eso suceda si hubo un error en la "captura"

de lo contrario, quiero que se envíe y haga algo más, como redirigir a la página de inicio de sesión

Respuestas

M11CH Dec 05 2020 at 01:48

En el bloque try, puede usar el .submit()método de jQuery con el ID del formulario:

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

Si no está usando jQuery, puede usar vanilla JS:

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