फिक्स्ड! धन्यवाद! नीचे "सही कोड" देखें।jQuery रिटर्न वैल्यू अपरिभाषित
लक्ष्य डायलॉग बॉक्स से डेटा वापस प्राप्त करना है। मैंने बहुत से लेख देखे हैं, लेकिन उनमें से कोई भी काम नहीं कर सका, इसलिए मैंने संवाद बॉक्स और अंतर्निहित पृष्ठ के बीच डेटा को आगे और आगे पास करने के लिए एक वेब सेवा का उपयोग करने का निर्णय लिया।
कोड के अलावा सभी कोड वेब कोड से वापस आने वाले मानों को छोड़कर कोड में हैं। मैं डीबगर में देख सकता हूं कि डेटा वापस पारित किया जा रहा है, लेकिन जब मैं कॉलर पर वापस आ जाता हूं, तो लौटाया गया डेटा अपरिभाषित होता है।
jQuery फ़ंक्शन getLocal AJAX कॉल करता है, अच्छा डेटा वापस प्राप्त करता है, लेकिन जब यह उस फ़ंक्शन पर वापस आता है जो इसे कॉल करता है (verbListShow), लौटाया गया मान "अपरिभाषित" होता है।
यह सब एक एएसपी.नेट पृष्ठ में हो रहा है जो मुख्य रूप से jQuery में लिखा गया है, और एक 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;
}
});
}
उपर्युक्त कोड काम करता है, लेकिन जब कहा जाता है, आरटीएन अनिर्धारित है।
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');
FIXED कोड::
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;
}
वेब सेवा नाम पोस्ट करने पर क्या लौटती है? क्या इसमें डी क्षेत्र है? कुछ नमूना डेटा दिखाएं .. –
'वापसी आरटीएन; 'आप AJAX सफलता कॉलबैक से वापस नहीं आ सकते हैं। मेरा सुझाव है कि या तो GetLocal फ़ंक्शन का उपयोग न करें या इसे jqXHR ऑब्जेक्ट वापस कर दें। –