我在验证用户的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”
您能否请检查返回的数据/响应类型和消息。有时,巨大的问题来自非常微不足道的行