是否可以在表单的 onsubmit() 中发送 ajax 请求?我一直在尝试,结果不稳定,主要是因为如果浏览器发送我的请求的时间恰好比发送原始表单所花费的时间长,那么一旦加载页面的位置发生变化,我的请求就会被丢弃,所以有时它从来没有打过服务器。
基本上,我想做的是添加一个收集登录事件的审核日志收集器,我想以最小的入侵将其挂接到现有应用程序。
最佳答案
这很容易实现。只需在 AJAX 请求完成后才提交表单。
让您的表单 onsubmit
属性调用 AJAX 函数并返回 false(这会取消表单提交)。当您的 AJAX 调用完成时,以编程方式提交表单。
例如:
<form name="myform" onsubmit="javascript: startAjax(); return false;">
...
<script type="text/javascript">
function startAjax() {} // Calls ajaxComplete() when finished
function ajaxComplete()
{
document.myform.submit();
}
</script>
关于javascript - 在表单提交之前发送 Ajax 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1263526/