jQuery Deferred and Dialog box

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 = '

something something

'; $("#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 }

ciao a tutti, qualche possibilità di restituire il valore? Desidero restituire il true e il falso tramite showDialog (). Done () e fallire per la funzione validatefield (), ma non funziona come voglio, non posso assegnarlo a bAllow poichè avevo già un return false to hold il dialogo per eseguire la sua prossima riga, qualche idea? O è corretto fare come questi?