jak zapobiec przesyłaniu formularza tylko wtedy, gdy wykryje błąd

Dec 05 2020

Próbuję zapobiec przesyłaniu formularza tylko wtedy, gdy zauważę błąd

Mam tę funkcję połączoną z moim formularzem 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
        }
    };

teraz mam na górze e.preventDefault (), która zatrzyma formularz i wyświetli odpowiedź, ale chcę, aby tak się stało tylko wtedy, gdy wystąpił błąd w "catch"

w przeciwnym razie chcę, aby się przesłał i zrobił coś innego, jak przekierowanie do strony logowania

Odpowiedzi

M11CH Dec 05 2020 at 01:48

W bloku try możesz użyć .submit()metody jQuery z identyfikatorem formularza:

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

Jeśli nie używasz jQuery, możesz użyć vanilla JS:

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