我有按钮,将表格的值发布到网址,但在帖子中我想将该值也捕获到我的数据库中。 所以在按钮上单击我创建了ajax的新线程并暂停while循环,因此用户无法重定向,因为表单的帖子。
但问题是程序在while循环中没有响应而没有发布ajax调用。
function btnSubmitId_Onclick() {
window.setTimeout(function () {
var FirstName = $(txtFirstNameId).val()
var Email = $(txtEmailId).val()
AJAXPost( //Url
"Signup"
, //Data
{Ip: Ip, CustomerKey: CustomerKey, FirstName: FirstName, Email: Email }
, //Success
function (data) {
response2 = true;
}
, //error
function (xhr, textStatus, errorThrown) { }
);
}, 0);
var date = new Date();
var curDate = null;
do { curDate = new Date(); }
while (response2 == false)
}
var response2 = false;
答案 0 :(得分:3)
你真的不应该这样做。主动等待可能会阻止整个浏览器或至少阻止当前标签。
在成功回调请求成功后,将所有需要运行的代码放入。
由于你显然想要正常提交表单和使用AJAX(为什么?!),解决方案相当简单:通过调用{{1来阻止浏览器处理原始提交(e.preventDefault()
是传递给jQuery事件处理程序的第一个参数)并且在AJAX请求成功e
表单之后。为了避免再次发送AJAX请求,您可能需要取消绑定提交事件处理程序或在AJAX请求完成后设置变量。