Javascript Confirmar pop-up Sim, não, botão em vez de OK e Cancelar

113

Pop-up de confirmação de Javascript, desejo mostrar o botão Sim, Não em vez de OK e Cancelar.

Usei este código vbscript:

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

isso só funciona no IE, no FF e no Chrome, não funciona.

Existe alguma solução alternativa para conseguir isso em Javascript?

Também quero mudar o título do pop-up, como no IE 'Windows Internet Explorer' é mostrado, quero mostrar aqui o nome do meu próprio aplicativo.

Muhammad Akhtar
fonte
Eu mesmo fiz um diálogo sim não, é muito fácil de personalizar: github.com/stein189/YesNoDialog Você pode tentar este se quiser
Szenis

Respostas:

88

Infelizmente, não há suporte para vários navegadores para abrir uma caixa de diálogo de confirmação que não seja o par padrão OK / Cancelar. A solução que você forneceu usa VBScript, que está disponível apenas no IE.

Eu sugeriria usar uma biblioteca Javascript que pode construir uma caixa de diálogo baseada em DOM. Experimente Jquery UI: http://jqueryui.com/

johnvey
fonte
17

A única maneira de fazer isso em um navegador cruzado é usar uma estrutura como o jQuery UI e criar um diálogo personalizado:

Diálogo jquery

Ele não funciona exatamente da mesma maneira que o pop-up de confirmação embutido, mas você deve ser capaz de fazê-lo fazer o que quiser.

Constantinius
fonte
4
Para maior clareza, não é a ÚNICA maneira - você pode escrever o seu próprio em Javascript, claro, não que seja a coisa certa a fazer.
LeonardChallis
1
@LeonardChallis, mas incluir uma grande biblioteca apenas para uma funcionalidade de div modal é melhor? Acho que não
nicholaswmin
8

Você também pode usar http://projectshadowlight.org/jquery-easy-confirm-dialog/ . É muito simples e fácil de usar. Basta incluir a biblioteca comum jquery e mais um arquivo apenas:

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

Você não pode fazer isso em um navegador cruzado com a função confirm () ou similar. Eu sugiro que você use algo como o recurso de diálogo jQuery UI para criar uma caixa de diálogo HTML.

cletus
fonte
3

Dê uma olhada em http://bootboxjs.com/

Muito fácil de usar:

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

A biblioteca em destaque (mas pequena e simples) que você pode usar é JSDialog: js.plus/products/jsdialog

Aqui está um exemplo para a criação de um diálogo com os botões Sim e Não:

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 tela de demonstração do JS Dialog

Dan Spirit
fonte
1
Ei, onde você faz o download disso?
Gary
Os links da @Gary foram padronizados para texto azul e sublinhado por décadas. Passe o mouse sobre o texto azul na primeira linha desta resposta e clique com o botão esquerdo.
Carrinho abandonado
plug-ins premium não ajudam o programador
Chris Pink
1

você pode usar sweetalert.

importar para o seu HTML:

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

e para disparar o 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 mais dados visite o site de alerta sweetalert

Ohad Cohen
fonte
0

1) Você pode baixar e enviar os arquivos abaixo em seu site

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

2) depois disso, você pode usar diretamente o código abaixo

$ .alerts.okButton = "sim"; $ .alerts.cancelButton = "não";

na função document.ready.

Por favor, tente funcionar.

obrigado

Reshma bhalekar
fonte
-11

a resposta muito específica ao ponto é confirmar a função Js do diálogo:

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

Ele mostra a caixa de diálogo com os botões ok cancelar, substituir esses botões com sim não não é uma tarefa tão simples, para isso você precisa escrever a função jQuery.

Ibrahim Khan
fonte
1
Ele queria um Sim e um Não. Esta confirmação apenas dá um ok ou cancela. É por isso que está sendo rejeitado.
SpoiledTechie.com