CỐ ĐỊNH! CẢM ƠN! Xem "Mã đã sửa" bên dưới.jQuery Giá trị trả lại không được xác định
Mục tiêu là lấy lại dữ liệu từ hộp thoại. Tôi đã thấy rất nhiều bài viết, nhưng không thể nhận được bất kỳ bài viết nào để làm việc, vì vậy tôi quyết định sử dụng dịch vụ web để chuyển dữ liệu qua lại giữa hộp thoại và trang cơ bản.
Tất cả mã được đưa ra ngoại trừ mã đọc giá trị quay lại từ dịch vụ web. Tôi có thể thấy trong trình gỡ rối rằng dữ liệu đang được truyền lại, nhưng khi tôi quay trở lại người gọi, dữ liệu trả về là không xác định.
Hàm jQuery getLocal gọi AJAX, lấy lại dữ liệu tốt, nhưng khi nó trả về hàm gọi nó (verbListShow), giá trị trả về là "không xác định".
Đây là tất cả xảy ra trong một trang ASP.NET được viết chủ yếu trong jQuery và mở một hộp thoại jQuery.
function getLocal(name) {
$.ajax({
type: "POST",
async: false,
url: "WebServices/FLSAService.asmx/GetLocalVariable",
dataType: 'json',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify({ name: name }),
success: function (data) {
var rtn = data.d;
return rtn;
}
});
}
Mã trên hoạt động, nhưng khi được gọi, rtn chưa được xác định. Dưới đây là những người gọi:
function verbListShow(dutyNumber) {
$('#dlgDutyList').dialog({
modal: true,
show: "slide",
width: 250,
height: 250,
open: function (event, ui) {
setLocal("DUTYNUMBER", dutyNumber);
},
buttons: {
"Select": function() {
var id = getLocal("VERBID"); // <*** Returns undefined
var verb = getLocal("VERB"); // <*** Returns undefined
$.ajax({
type: "POST",
async: false,
url: "WebServices/FLSAService.asmx/SetDuty",
dataType: 'json',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify({ dutyNum: dutyNumber, id: id, verb: verb }),
success: function (data) {
data = $.parseJSON(data.d);
if (data.ErrorFound) {
showMessage(data.ErrorMessage, 2, true);
}
else {
log('Set Duty: ' + data.StringReturn + ' (' + data.intReturn + ')');
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("updateDuty: "
+ XMLHttpRequest.responseText);
}
});
$(this).dialog("close");
},
Cancel: function() {
$(this).dialog("close");
}
}
});
$('#dlgDutyList').dialog('open');
CỐ ĐỊNH Mã sản phẩm:
function getLocal(name) {
var rtn = "";
$.ajax({
type: "POST",
async: false,
url: "WebServices/FLSAService.asmx/GetLocalVariable",
dataType: 'json',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify({ name: name }),
success: function (data) {
rtn = data.d;
}
});
return rtn;
}
Dịch vụ web trả về tên đăng bài cho nó là gì? Nó có d lĩnh vực trong nó? hiển thị một số dữ liệu mẫu .. –
'return rtn;' Bạn không thể trở về từ cuộc gọi lại thành công ajax. Tôi đề nghị hoặc không sử dụng hàm getLocal hoặc trả về đối tượng jqXHR. –