我似乎无法让这个值将 isValid 值从下面的代码片段中的 ajax 调用中传回:
function isShortUrlAvailable(sender, args) {
var isValid = false;
$.ajax({
type: "POST",
url: "/App_Services/ShortUrlService.asmx/IsUrlAvailable",
data: "{url: '" + args.Value + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
isValid = response.d;
},
error: function (msg) {
isValid = false;
}
});
args.IsValid = isValid;
}
我敢肯定,这只是与我忽略的闭包有关的简单事情。有人可以帮忙吗?
它用于 asp.net 自定义验证器。
这就是正在发生的事情:
- isValid 在第一行设置为 false
- .ajax() 请求正确触发,如果其有效返回 true
- isValid 正确设置为 true (response.d)
- 当它回到最后一行时,它认为 isValid 再次为假