Artic
Artic

Reputation: 11

Ajax in jQuery - Unintentional loop

I don't know why, but when I click in the submit the ajax run repeating for 4x or more times and I just supposed to run once after clicked. I'm a beginner and I've never used JQuery before:

    <script type=text/javascript>
    $(document).click(function()
        {
        document.getElementById("form").addEventListener("submit", function(event)
        {
            event.preventDefault()
        })

        $("#button").click(function(event)
        {
            let username = document.getElementById("username").value
            $.get("/check?username=" + username, function(data)
            {
                console.log(data)
                if (data)
                {
                    console.log("data == true")
                    alert("Username already in use")
                    return false
                }
                else
                {
                    console.log("data == false")
                    document.getElementById("form").submit()
                    return
                }
            }, 'json")
        })
    })
</script>

Upvotes: 0

Views: 37

Answers (1)

Rise
Rise

Reputation: 1601

Try to update $(document).click(function() to $(document).ready(function().

 $(document).ready(function()
        {
        document.getElementById("form").addEventListener("submit", function(event)
        {
            event.preventDefault()
        })

        $("#button").click(function(event)
        {
            let username = document.getElementById("username").value
            $.get("/check?username=" + username, function(data)
            {
                console.log(data)
                if (data)
                {
                    console.log("data == true")
                    alert("Username already in use")
                    return false
                }
                else
                {
                    console.log("data == false")
                    document.getElementById("form").submit()
                    return
                }
            }, 'json")
        })
    })

Upvotes: 1

Related Questions