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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在使用event.preventDefault()时使用.submit()或如何不相互取消?相关的知识,希望对你有一定的参考价值。

我在验证用户的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()不是按预期的功能。

任何帮助,将不胜感激。

答案

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

另一答案

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

另一答案

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

以上是关于如何在使用event.preventDefault()时使用.submit()或如何不相互取消?的主要内容,如果未能解决你的问题,请参考以下文章

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

在 onWheel 事件中使用 event.preventDefault 时,如何规避 reactjs 中的“被动事件监听器”

阻止默认事件event.preventDefault();

event.preventDefault 阻止 ajax 调用

Javascript event.preventDefault() 不适用于模态

$stateChangeStart 删除最初启用的 event.preventDefault