Javascript Confirmer popup Oui, Non bouton au lieu de OK et Annuler

113

Javascript Confirmer la popup, je veux afficher le bouton Oui, Non au lieu de OK et Annuler.

J'ai utilisé ce code vbscript:

<script language="javascript">
    function window.confirm(str) {
        execScript('n = msgbox("' + str + '","4132")', "vbscript");
        return (n == 6);
    }
</script>

cela ne fonctionne que dans IE, dans FF et Chrome, cela ne fonctionne pas.

Existe-t-il une solution de contournement pour y parvenir en Javascript?

Je veux aussi changer le titre du popup comme dans IE 'Windows Internet Explorer' est affiché, je veux montrer ici mon propre nom d'application.

Muhammad Akhtar
la source
J'ai fait moi-même un dialogue oui non, c'est vraiment facile à personnaliser: github.com/stein189/YesNoDialog Vous pouvez essayer celui-ci si vous le souhaitez
Szenis

Réponses:

88

Malheureusement, il n'y a pas de prise en charge multi-navigateurs pour ouvrir une boîte de dialogue de confirmation qui n'est pas la paire OK / Annuler par défaut. La solution que vous avez fournie utilise VBScript, qui n'est disponible que dans IE.

Je suggérerais d'utiliser une bibliothèque Javascript qui peut créer une boîte de dialogue basée sur DOM à la place. Essayez Jquery UI: http://jqueryui.com/

johnvey
la source
17

La seule façon d'accomplir cela de manière multi-navigateurs est d'utiliser un framework tel que jQuery UI et de créer une boîte de dialogue personnalisée:

Boîte de dialogue jquery

Cela ne fonctionne pas exactement de la même manière que la fenêtre contextuelle de confirmation intégrée, mais vous devriez pouvoir lui faire faire ce que vous voulez.

Constantinius
la source
4
Pour plus de clarté, ce n'est pas le SEUL moyen - vous pouvez bien sûr écrire le vôtre en Javascript, pas que ce soit la bonne chose à faire.
LeonardChallis
1
@LeonardChallis mais inclure une grande bibliothèque juste pour une fonctionnalité div modale est mieux? Je ne pense pas
nicholaswmin
8

Vous pouvez également utiliser http://projectshadowlight.org/jquery-easy-confirm-dialog/ . C'est très simple et facile à utiliser. Incluez simplement la bibliothèque commune jquery et un autre fichier uniquement:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"></script>
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/themes/blitzer/jquery-ui.css" type="text/css" />
<script src="jquery.easy-confirm-dialog.js"></script>
Quan
la source
4

Vous ne pouvez pas faire ce cross-browser avec la fonction confirm () ou similaire. Je vous suggère fortement d'utiliser quelque chose comme la fonction de dialogue de l'interface utilisateur jQuery pour créer une boîte de dialogue HTML à la place.

cletus
la source
3

Jetez un œil à http://bootboxjs.com/

Utilisation très simple:

 bootbox.confirm("Are you sure?", function(result) {
  Example.show("Confirm result: "+result);
});
Andzej Maciusovic
la source
3

La bibliothèque en vedette (mais petite et simple) que vous pouvez utiliser est JSDialog: js.plus/products/jsdialog

Voici un exemple de création d'une boîte de dialogue avec les boutons Oui et Non:

JSDialog.showConfirmDialog(
    "Save document before it will be closed?\nIf you press `No` all unsaved changes will be lost.",
    function(result) {
        // check result here
    },
    "warning",
    "yes|no|cancel"
);

Capture d'écran de la démonstration de JS Dialog

Esprit Dan
la source
1
Hé, où téléchargez-vous ça?
Gary
@Gary Links utilise par défaut du texte bleu souligné depuis des décennies. Utilisez votre souris pour survoler le texte bleu de la première ligne de cette réponse et cliquez sur le bouton gauche.
Panier abandonné
les plugins premium n'aident pas un programmeur
Chris Pink
1

vous pouvez utiliser sweetalert.

importer dans votre HTML:

<script src="https://cdn.jsdelivr.net/npm/sweetalert2@8"></script>

et pour déclencher l'alerte:

Swal.fire({
  title: 'Do you want to do this?',
  text: "You won't be able to revert this!",
  type: 'warning',
  showCancelButton: true,
  confirmButtonColor: '#3085d6',
  cancelButtonColor: '#d33',
  confirmButtonText: 'Yes, Do this!',
  cancelButtonText: 'No'
}).then((result) => {
  if (result.value) {
    Swal.fire(
      'Done!',
      'This has been done.',
      'success'
    )
  }
})

pour plus de données, visitez le site Web d'alerte de sweetalert

Ohad Cohen
la source
0

1) Vous pouvez télécharger et télécharger les fichiers ci-dessous sur votre site

<link href="/Style%20Library/css/smoothness/jquery.alerts.css" type="text/css" rel="stylesheet"/> 

2) après cela, vous pouvez utiliser directement le code ci-dessous

$ .alerts.okButton = "oui"; $ .alerts.cancelButton = "non";

dans la fonction document.ready.

Veuillez essayer que cela fonctionnera.

Merci

Reshma Bhalekar
la source
-11

la réponse très spécifique à ce point est de confirmer le dialogue Fonction Js:

confirm('Do you really want to do so');

Il affiche une boîte de dialogue avec des boutons d'annulation ok, les remplacer par oui non n'est pas une tâche si simple, pour cela, vous devez écrire la fonction jQuery.

Ibrahim Khan
la source
1
Il voulait un oui et non. Cette confirmation donne seulement un ok ou une annulation. C'est pourquoi cela est rejeté.
SpoiledTechie.com