闭包不能返回值
cant return value out of closure
我似乎无法让这个值将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再次为false
AJAX方法是异步的意味着您的值被设置为false
, AJAX调用被启动,但是当它发生时args.IsValid
行被调用。只需删除变量并在每个场景中设置args.IsValid
值:
function isShortUrlAvailable(sender, args) {
$.ajax({
type: "POST",
url: "/App_Services/ShortUrlService.asmx/IsUrlAvailable",
data: "{url: '" + args.Value + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
args.IsValid = response.d;
},
error: function (msg) {
args.IsValid = false;
}
});
}
相关文章:
- 从Java脚本返回多个值,这些值不能在firefox上运行(在IE上运行良好)
- 文本框值不能使用 JavaScript 更改
- 链+过滤器+返回值不是函数
- 使用JavaScript检索自定义CSS属性值-不能
- 承诺的返回值不是预期值
- 为什么角度插值不能再了
- window.history.back(),返回false;“不能在IE11中工作
- 为什么当返回值在另一行时,Javascript返回语句不能工作?
- Html表值不能从Jquery中获取
- 流星JS -嵌套函数返回值不正确
- 所选选项值不能重置
- Array.find(value)返回值'不是函数'
- Ajax返回值不工作
- JavaScript对象.赋值不能在Date对象上工作
- Dojo选择设置值不能与动态生成的选项一起工作
- 为什么'返回false'不能防止页面在点击时重新加载
- Javascript输入值不能被用户更改
- 从powershell脚本返回的值不能用于PHP
- 当数组字段为空时,替换值不能正常工作
- jQuery textarea值与空格和返回键不能正常工作