Javascript 函数内-等待ajax响应
在该功能中:Javascript 函数内-等待ajax响应,javascript,ajax,Javascript,Ajax,在该功能中: function ValidateForm() { var ret = true; if ($("#txtName").val().trim().length == 0) { ret = false; $('#txtName').effect("highlight", {}, 1000); } if ($("#txtSurname").val().trim().length == 0) { ret = false; $(
function ValidateForm()
{
var ret = true;
if ($("#txtName").val().trim().length == 0) { ret = false; $('#txtName').effect("highlight", {}, 1000); }
if ($("#txtSurname").val().trim().length == 0) { ret = false; $('#txtSurname').effect("highlight", {}, 1000); }
if ($("#txtUserName").val().trim().length == 0) { ret = false; $('#txtUserName').effect("highlight", {}, 1000); }
else {
var pData = {}; pData["username"] = $("#txtUserName").val();
$.ajax({
url: 'service.aspx?/isusernameexist/',
dataType: 'json',
type: "POST",
data: pData,
success: function (data) {
if (data[0].cnt > 0) {
ret = false; $('#txtUserName').effect("highlight", {}, 1000);
}
}
});
}
return ret;
}
我试图在插入新用户之前验证表单,但检查用户名是否可以自由使用,这需要一些时间,并且我的函数ValidateForm()
在ajax请求完成之前返回值
在这种情况下,如何正确实现ajax功能?你不能这样做。Javascript中的事件系统是异步的,函数总是在运行AJAX请求和触发回调之前返回 你应该找到另一种方法。调用
ValidateForm
的函数必须重新编写,以考虑JavaScript的异步性质。思考它的作用以及如何使其在约束条件下工作
它是否向用户显示错误?如果是,请在回调函数中显示该错误
它是否使表单无效或阻止提交?如果是这样,请将其存储为全局变量或数据属性,以便稍后提交时查找