gpt4 book ai didi

javascript - 是否可以在 javascript 中检测表单提交失败?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:33:34 26 4
gpt4 key购买 nike

我有这个简单的表格:

<form action="www.faildomain.com">
<input name="foo" value="bar">
<button type="submit">Submit</button>
</form>

在我的例子中,操作将失败。但会不会是这是一个有效的操作,但是用户遇到了连接错误?

是否生成了不同的 Javascript 事件或操作系统超出了我的控制范围?

最佳答案

如果您不处理提交事件,这是您无法控制的。基本上,当您单击提交按钮时,您的浏览器将对您的“操作”URL 执行 HTTP POST 请求。

如果您想在发送之前检查输入的有效性,您需要做的是处理表单提交事件:submit。

const myForm = document.getElementById('my-form');

// Add a listener to the submit event
myForm.addEventListener('submit', function (e) {
const errors = [];

// Check inputs...

if(errors.length) {
e.preventDefault(); // The browser will not make the HTTP POST request
return;
}
});

但是,即使使用这段代码,您也永远不会知道用户是否有网络问题。

检查此类错误的唯一方法是使用 Ajax 对后端路由进行异步调用(它只是一个 HTTP POST 请求,异步调用)。例如,使用 jQuery:

$("#myForm").on("submit", function(e) {
event.preventDefault();

const data = {};

// Get data from form...

// Stop form from submitting normally
$.post("www.faildomain.com", data)
.done(function(data) {
// No problem
},
.fail(function (jqXHR, textStatus) {
// An error occured (the server responded with an error status, network issue, ...)
// More information about the error can be found in jqXHR and textStatus
 },
.always(function () {
// This method is always executed whether there were an error or not
});

关于javascript - 是否可以在 javascript 中检测表单提交失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30171099/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com