Javascript Potwierdź wyskakujące okienko Tak, przycisk Nie zamiast OK i Anuluj

113

Wyskakujące okienko potwierdzenia Javascript, chcę wyświetlić przycisk Tak, Nie zamiast OK i Anuluj.

Użyłem tego kodu VBScript:

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

działa to tylko w IE, w FF i Chrome, nie działa.

Czy jest jakieś rozwiązanie umożliwiające osiągnięcie tego w Javascript?

Chcę również zmienić tytuł wyskakującego okienka, tak jak w przeglądarce IE wyświetla się „Windows Internet Explorer”, chcę tutaj pokazać własną nazwę aplikacji.

Muhammad Akhtar
źródło
Zrobiłem dialog tak, nie, jest naprawdę łatwy do dostosowania: github.com/stein189/YesNoDialog Możesz spróbować tego, jeśli chcesz
Szenis

Odpowiedzi:

88

Niestety, nie ma obsługi różnych przeglądarek do otwierania okna dialogowego z potwierdzeniem, które nie jest domyślną parą OK / Anuluj. Dostarczone rozwiązanie korzysta z języka VBScript, który jest dostępny tylko w przeglądarce IE.

Sugerowałbym użycie biblioteki Javascript, która może zamiast tego zbudować okno dialogowe oparte na DOM. Wypróbuj interfejs Jquery: http://jqueryui.com/

johnvey
źródło
17

Jedynym sposobem, w jaki można to osiągnąć za pomocą różnych przeglądarek, jest użycie struktury takiej jak jQuery UI i utworzenie niestandardowego okna dialogowego:

Okno dialogowe jquery

Nie działa dokładnie w taki sam sposób, jak wbudowane wyskakujące okienko potwierdzenia, ale powinieneś być w stanie zrobić to, co chcesz.

Konstantyniusz
źródło
4
Dla jasności, nie jest to JEDYNY sposób - możesz oczywiście napisać własny w Javascript, nie żeby był to właściwy sposób.
LeonardChallis
1
@LeonardChallis, ale włączenie dużej biblioteki tylko dla modalnej funkcjonalności div jest lepsze? Nie sądzę
nicholaswmin
8

Możesz również użyć http://projectshadowlight.org/jquery-easy-confirm-dialog/ . Jest bardzo prosty i łatwy w użyciu. Wystarczy dołączyć wspólną bibliotekę jquery i tylko jeden plik:

<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
źródło
4

Nie możesz tego zrobić w różnych przeglądarkach za pomocą funkcji confirm () lub podobnej. Zdecydowanie sugeruję użycie czegoś w rodzaju funkcji okna dialogowego interfejsu użytkownika jQuery do utworzenia okna dialogowego HTML.

cletus
źródło
3

Spójrz na http://bootboxjs.com/

Bardzo łatwy w użyciu:

 bootbox.confirm("Are you sure?", function(result) {
  Example.show("Confirm result: "+result);
});
Andzej Maciusovic
źródło
3

Polecana (ale mała i prosta) biblioteka, której możesz użyć, to JSDialog: js.plus/products/jsdialog

Oto przykład tworzenia okna dialogowego z przyciskami Tak i Nie:

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

Zrzut ekranu demo JS Dialog

Dan Spirit
źródło
1
Hej, gdzie to ładujesz?
Gary
@Gary Linki od dziesięcioleci mają domyślnie zaznaczony niebieski, podkreślony tekst. Użyj myszy, aby najechać kursorem na niebieski tekst w pierwszym wierszu tej odpowiedzi i kliknij lewy przycisk.
Opuszczony koszyk
wtyczki premium nie pomagają programistom
Chris Pink
1

możesz użyć sweetalert.

importuj do HTML:

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

i wystrzelić alert:

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

Aby uzyskać więcej danych, odwiedź witrynę z alertami sweetalert

Ohad Cohen
źródło
0

1) Możesz pobrać i przesłać poniższe pliki w swojej witrynie

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

2) po tym możesz bezpośrednio użyć poniższego kodu

$ .alerts.okButton = "tak"; $ .alerts.cancelButton = "nie";

w funkcji document.ready.

Spróbuj, to zadziała.

Dzięki

Reshma bhalekar
źródło
-11

bardzo konkretną odpowiedzią na ten temat jest potwierdzenie dialogu Funkcja Js:

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

Pokazuje okno dialogowe z przyciskami OK Cancel, aby zamienić te przyciski na tak nie jest to takie proste zadanie, do tego trzeba napisać funkcję jQuery.

Ibrahim Khan
źródło
1
Chciał tak i nie. To potwierdzenie daje tylko ok lub anulowanie. Właśnie dlatego głosowanie odrzucono.
SpoiledTechie.com