如何在使用event.preventDefault()时使用.submit()或如何不相互取消?

问题描述 投票:0回答:3

我在验证用户的ID后尝试提交表单,但在输入有效的ID后,表单未发布:

<form action="/register" method="post" id="registerForm">
...
</form>

<script>
        document.getElementById("submit").addEventListener("click", function(event) {
            let input = document.getElementById("username");
            $.get("/check?username=" + input.value, function(data) {
                if (data == false){
                    alert("Username invalid or taken");
                }
                else {
                    alert("success");
                    document.getElementById("registerForm").submit();
                }
            });
            event.preventDefault();
        });
    </script>

通过改变方向:

<script>
        document.getElementById("submit").addEventListener("click", function(event) {
            let input = document.getElementById("username");
            $.get("/check?username=" + input.value, function(data) {
                if (data == false){
                    alert("Username invalid or taken");
                    event.preventDefault();
                }
                else {
                    alert("success");
                    document.getElementById("registerForm").submit();
                }
            });
        });
    </script>

代码现在总是提交代码。我不确定是否是event.preventDefault()重写.submit()或者它是.submit()不是按预期的功能。

任何帮助,将不胜感激。

javascript jquery
3个回答
0
投票

尝试将addEventListener()“click”的事件类型更改为“submit”。


0
投票

将事件侦听器添加到整个表单并将事件更改为“submit”


0
投票

您能否请检查返回的数据/响应类型和消息。有时,巨大的问题来自非常微不足道的行

© www.soinside.com 2019 - 2024. All rights reserved.