Javascript Confirmar ventana emergente Sí, No botón en lugar de Aceptar y Cancelar

113

Ventana emergente de confirmación de Javascript, quiero mostrar el botón Sí, No en lugar de Aceptar y Cancelar.

He usado este código vbscript:

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

esto solo funciona en IE, en FF y Chrome, no funciona.

¿Hay alguna solución para lograr esto en Javascript?

También quiero cambiar el título de la ventana emergente como en IE se muestra 'Windows Internet Explorer', quiero mostrar aquí el nombre de mi propia aplicación.

Muhammad Akhtar
fuente
Yo mismo hice un diálogo de sí no, es realmente fácil de personalizar: github.com/stein189/YesNoDialog Podrías probar este si quieres
Szenis

Respuestas:

88

Desafortunadamente, no hay compatibilidad con varios navegadores para abrir un cuadro de diálogo de confirmación que no sea el par predeterminado Aceptar / Cancelar. La solución que proporcionó utiliza VBScript, que solo está disponible en IE.

Sugeriría usar una biblioteca de Javascript que pueda construir un diálogo basado en DOM en su lugar. Prueba la interfaz de usuario de Jquery: http://jqueryui.com/

johnvey
fuente
17

La única forma en que puede lograr esto de una manera entre navegadores es usar un marco como jQuery UI y crear un diálogo personalizado:

Diálogo jquery

No funciona exactamente de la misma manera que la ventana emergente de confirmación incorporada, pero debería poder hacer que haga lo que quiera.

Constantinius
fuente
4
Para mayor claridad, no es la ÚNICA forma: puede escribir el suyo propio en Javascript, por supuesto, no es que sea lo correcto.
LeonardChallis
1
@LeonardChallis, pero ¿es mejor incluir una biblioteca grande solo para una funcionalidad div modal? No lo creo
nicholaswmin
8

También puede utilizar http://projectshadowlight.org/jquery-easy-confirm-dialog/ . Es muy simple y fácil de usar. Solo incluya la biblioteca común de jquery y solo un archivo más:

<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
fuente
4

No puede hacer este navegador cruzado con la función confirm () o similar. Le sugiero que use algo como la función de diálogo de jQuery UI para crear un cuadro de diálogo HTML en su lugar.

cletus
fuente
3

Eche un vistazo a http://bootboxjs.com/

Muy fácil de usar:

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

La biblioteca destacada (pero pequeña y simple) que puede usar es JSDialog: js.plus/products/jsdialog

Aquí hay una muestra para crear un diálogo con los botones Sí y No:

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"
);

Captura de pantalla de demostración de JS Dialog

Espíritu de Dan
fuente
1
Oye, ¿dónde descargas esto?
Gary
@Gary Links ha estado predeterminado en texto azul subrayado durante décadas. Use el mouse para desplazarse sobre el texto azul en la primera línea de esta respuesta y haga clic en el botón izquierdo.
Carrito abandonado
los complementos premium no ayudan al programador
Chris Pink
1

puedes usar sweetalert.

importar en su HTML:

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

y disparar la alerta:

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'
    )
  }
})

para obtener más datos, visite el sitio web de alertas de sweetalert

Ohad Cohen
fuente
0

1) Puede descargar y cargar los siguientes archivos en su sitio

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

2) después de eso, puede usar directamente el siguiente código

$ .alerts.okButton = "sí"; $ .alerts.cancelButton = "no";

en la función document.ready.

Inténtelo, funcionará.

Gracias

Reshma bhalekar
fuente
-11

la respuesta muy específica al punto es confirmar el diálogo Función Js:

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

Muestra un cuadro de diálogo con los botones Aceptar cancelar, reemplazar estos botones con sí no no es una tarea tan simple, para eso necesita escribir la función jQuery.

Ibrahim Khan
fuente
1
Quería un Sí y un No. Esta confirmación solo da un ok o cancelar. Es por eso que esto está siendo rechazado.
SpoiledTechie.com