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
}
Witam wszystkich, masz szansę zwrócić wartość? Chcę zwrócić true i false poprzez showDialog(). Done() i nie działa funkcja validatefield(), ale to nie działa tak, jak chcę, nie mogę przypisać do bAllow, ponieważ miałem już zwrot false do zawieszenia okno dialogowe, aby wykonać kolejną linię, jakiś pomysł? A może tak jest?jQuery Odroczone i okno dialogowe
nie będziesz w stanie spowodować Javascript czekać na zakończenie odroczonego obiektu, więc nie ma sposobu, aby 'powrót 'później. Nie jestem pewien, jak to "naprawić", ale myślę, że sposób na reorganizację kodu/logiki – Ian
Nie, nie można zwrócić synchronicznie z asynchronicznego zadania. Zamiast tego przekaż odroczone! – Bergi
oznacza więc, że przechodzę do innej funkcji, n używać innej funkcji do sprawdzania sprawdzania poprawności zamiast tej samej funkcji? Czy mogę pokazać mi jakiś właściwy sposób na zrobienie tego? utwórz zmienną globalną, ustaw ją na true/fase na podstawie defferend, następnie w innej funkcji użyj zmiennej globalnej do sprawdzania, po czym użyj funkcji, aby zwrócić true/false?Nadal jestem nowicjuszem, po prostu przeszukuję google n to rozwiążę, wyjdź coś takiego – Se0ng11