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.


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/


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.


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>

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.



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


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


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


-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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.