在函数中-等待ajax响应
in function - waiting ajax to respond
在此函数中:
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的异步特性。想想它能做什么,以及如何让它在约束条件下工作。
是否显示错误给用户?如果是,在回调函数中显示错误。
是否使表单无效或阻止提交?如果是,将其存储为全局变量或数据属性,以便稍后提交时查询。
相关文章:
- 不再使用innerHTML进行AJAX响应.(代码未得到响应)
- 为什么可以't我使用了AJAX响应的一部分
- Ajax响应转换
- 如何在数据表中设置从Ajax响应选中的复选框
- 在Javascript中的ajax响应之后未调用Dropdown事件
- RubyonRails-Ajax响应的问题
- Ajax:Ajax响应中的链接不起作用
- 如何执行ajax响应返回的javascript函数
- 带有 AJAX 响应或 AJAX 响应的 IF 条件.响应.Text 不起作用
- 正在检查ajax响应中的错误数据
- 如何从ajax响应中重新加载整个页面
- 如何使用jQuery/Ajax响应特定的提交按钮
- 是浏览器在AJAX响应中自动处理的HTTP标头
- Masony无法处理ajax响应
- 使用yii2表单等待ajax响应
- jquery返回ajax响应和用户定义的变量到函数
- 使用Ajax响应更新TextBox
- 如何在jquery ajax响应后设置jquery滑块的起始值
- Rails 4中不执行Ajax响应
- jquery解析ajax响应