【发布时间】:2016-04-16 07:29:18
【问题描述】:
我有一个自定义验证器来检查输入的数字是否唯一。如果数字不是唯一的,它应该返回 false。
javascript代码是这样的:
function ValidatePAuthNo(sender, args) {
//args.IsValid = true;
var PAuthNo = $('[id$=tbPriorAuthNumber]').val();
$.ajax({
type: "POST",
url: "MedicaidPriorAuth.aspx/IsPAuthUnique",
data: JSON.stringify({ pAuthNo: PAuthNo }),
contentType: "application/json; charset=utf-8",
dataType: "json",
async: true,
error: function (response) {
alert(" An error occurred." + response.error);
},
success: function (data) {
if (data.d == false) {
//alert("P. Auth# already exists! Please enter new P. Auth #.");
$("[id$=lblError]").val("P. Auth# already exists! Please enter new P. Auth #.");
args.isValid = false;
} else {
$("[id$=lblError]").val("");
args.isValid = true;
}
}
});
return args.IsValid;
}
我的 Web 方法返回正确的值,但是,问题是在 ajax 方法之前调用了 return args.IsValid。我在这里做错了吗?如果我的方法是错误的,那么从客户端执行此操作的正确方法是什么?
【问题讨论】:
-
这与 asp.net 无关,它是 ajax 和 ajax 表示异步 JavaScript 和 XML,因此默认情况下 ajax 调用(除非您设置 async: false 选项)是任意同步的,您的函数将在您获取之前返回来自服务器的响应。在服务器响应后传递一个回调函数来执行。审查你的代码设计
标签: javascript jquery asp.net validation asp.net-ajax