【发布时间】:2018-06-14 17:01:10
【问题描述】:
我有一个 HTML 表单,我使用 onsubmit 来验证输入和操作以在表单提交时调用 URL。这是我的 HTML 代码:
<form method="POST" onsubmit="return validateInput();" action="editConf" id="edit-form">
// HTML Form code
<div class="modal-footer">
<p id = "edit-footer" align="center"> </p>
<button type="reset" onClick="resetForm()" class="btn btn-secondary" data-dismiss="modal" >Cancel</button>
<button type="submit" class="btn btn-primary">Save changes</button>
</div>
这是我的脚本代码:
function validateInput() {
// some validation code
$.ajax({
url: "validate_credentials",
type: 'POST',
data: { data: document.getElementById('data') },
dataType: 'json', // added data type
success: function(res) {
if (res && valid) {
$("#bigerror").innerHTML = res;
return true;
} else {
return false;
}
}
});
我面临的问题是,正在运行的 URL 首先完成其执行,因此即使表单无效,它也会提交。如何解决这个问题?
【问题讨论】:
-
$.ajax是异步的。validateInput()发送请求后立即返回,不等待成功函数。 -
那我该如何处理这种情况呢?
标签: javascript ajax asynchronous action onsubmit