Remplacer javascript confirmer par jquery confirmer
J'utilise le code suivant pour utiliser la valeur par défaut javascript confirmer par jquery ui dialogue.
jQuery.extend({
confirm: function(message, title, okAction) {
jQuery("<div></div>").dialog({
//Remove the closing 'X' from the dialog
open: function(event, ui) { jQuery(".ui-dialog-titlebar-close").hide(); },
buttons: {
"Ok": function() {
jQuery(this).dialog("close");
return true;
},
"Cancel": function() {
jQuery(this).dialog("close");
return false;
}
},
close: function(event, ui) { jQuery(this).remove(); },
resizable: false,
title: title,
modal: true
}).text(message);
}
});
jQuery.confirm(
"LogOut",
"Do you want to log out",
function() {
});
Maintenant, j'ai besoin d'utiliser ce même code dans un journal de l'action. De sorte que je peux remplacer le javascript confirmer dans le code.
<a class="homeImage" onclick="return confirm('Do you want to logout?');" href="/future/myhome/head?$event=logout">LOG OUT</a>
Le problème, je suis confronté est maintenant, quand je remplace le confirmer avec une autre fonction et attendre que sa valeur de retour pour prendre une décision, la boîte de dialogue ne retourne pas la valeur d'une variable. Ces deux fonctions sont exécutées simultanément(la diffusion de l'alerte, mais aussi obtenir dirigé vers le href de la cible). Est-il possible que la méthode peut retourner une valeur true ou false, et donc de procéder à la href cible.
référence: jQuery Étendre,jQuery UI Remplacement d'alerte
question connexe : js remplacer confirmer
Je sais que, Si j'ai un retour de vrai et de faux dans les "Ok" et "Annuler", encore sa ne fonctionne pas. Alors, comment pourrais-je modifier mon code pour le retour de ces. c'est ma question, pouvez-vous m'aider?
OriginalL'auteur arjuncc | 2013-10-15
Vous devez vous connecter pour publier un commentaire.
Le problème est que par défaut
confirm
dialogue est synchronus et de bloquer l'ensemble de l'INTERFACE utilisateur du navigateur. JQuery dialogue est asynchrone et ne pas bloquer l'INTERFACE utilisateur (parce qu'il en a besoin pour le rendu).Donc la réponse à votre problème est la suivante. Vous avez besoin de changer:
et
OriginalL'auteur Piotr Stapp
Je ne sais pas si on pouvait le faire de la manière la
jQuery.dialog
fonction est asynchrone.Vous pouvez utiliser une promesse de la bibliothèque de l'installation le bouton cliquez sur événements. Mais alors vous ne pouvez pas il suffit de spécifier une méthode dans la
onclick
attribut et de le faire via le codejsFiddle
Pour plus d'info à propos de jQuery promesse de la bibliothèque de voir jQuery référence
Edit: une Autre façon de le configurer: jsFiddle
OriginalL'auteur LazyTarget
Personnellement, j'utilise de plus pour confirmer l'exécution conditionnelle d'une fonction ou de l'affichage d'un formulaire...
Donc, à l'aide de votre exemple, j'aurais pris les petits changements:
Et puis il a appelé le Confirmer comme suit:
OriginalL'auteur Tony Carbone