function ValidateField(){
var bAllow= true;
//some checking here
if (bAllow == true && apl.val().trim() == "")
{
showDialog();
showDialog().done(function() {
return true; // wanna return true, but not success
}).fail(function() {
return false; //wanna return false, but not success
});
return false; //stop it to execute to next line
}
return bAllow; //success return }
function showDialog(){
var def = $.Deferred();
var modPop = '<div id="diaCom" title="Information?"><p>something something</p></div>';
$("#diaCom").remove();
$(modPop).appendTo('body');
$("#diaCom").dialog({
resizable: false,
draggable: false,
height:150,
width:300,
modal: true,
buttons: {
"Ok": function() {
def.resolve();
$(this).dialog("close");
},
"Cancel": function() {
def.reject();
$(this).dialog("close");
}
}
});
return def.promise();
}
//on click
if (validateField() == true){
//do something
}else{
//do something
}
हाय सबको, मूल्य वापस करने का कोई मौका? मैं showDialog() के माध्यम से सत्य और गलत लौटना चाहता हूं।() किया गया है (वैध)() फ़ंक्शन के लिए असफल रहा है, लेकिन यह मेरे काम के रूप में काम नहीं कर रहा है, मैं इसे आवंटित नहीं कर सकता क्योंकि मेरे पास पहले से ही झूठी वापसी है अपनी अगली पंक्ति, किसी भी विचार को निष्पादित करने के लिए संवाद? या ऐसा करना सही है?jQuery डिफरर्ड और डायलॉग बॉक्स
आप आस्थगित वस्तु के पूरा होने के लिए प्रतीक्षा करने जावास्क्रिप्ट पैदा करने के लिए सक्षम नहीं होगा, तो कोई रास्ता नहीं करने के लिए नहीं है 'वापसी बाद में मुझे यकीन नहीं है कि इसे कैसे "ठीक करें", लेकिन मुझे लगता है कि आपका कोड/तर्क – Ian
पुनर्गठन करना है, नहीं, आप एक असीमित कार्य से सिंक्रनाइज़ नहीं कर सकते हैं। इसके बजाय, स्थगित पास! – Bergi
तो इसका मतलब है कि मैं किसी अन्य फ़ंक्शन पर जाता हूं, n उसी फ़ंक्शन के बजाय सत्यापन जांच करने के लिए अन्य फ़ंक्शन का उपयोग करता हूं? मुझे ऐसा करने का थोड़ा सा सही तरीका दिखा सकता है? एक ग्लोबल वेरिएबल बनाएं, इसे डिफ्रेंड के आधार पर सही/फेज पर सेट करें, फिर किसी अन्य फ़ंक्शन में, ग्लोबल वैरिएबल का उपयोग करने के लिए जांच करें, उसके बाद फ़ंक्शन को सही/गलत लौटने के लिए उपयोग करें?मैं अभी भी डिफर्ड करने के लिए नया हूं, बस Google n पहेली के माध्यम से इसे खोजें, इस – Se0ng11