Всплывающее окно подтверждения Javascript: Да, кнопка Нет вместо ОК и Отмена


113

Всплывающее окно подтверждения Javascript, я хочу показать кнопки «Да», «Нет» вместо «ОК» и «Отмена».

Я использовал этот код vbscript:

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

это работает только в IE, в FF и Chrome не работает.

Есть ли способ добиться этого в Javascript?

Я также хочу изменить заголовок всплывающего окна, как в IE, показано «Windows Internet Explorer», я хочу показать здесь свое собственное имя приложения.


Я сам сделал диалог «да нет», его очень легко настроить: github.com/stein189/YesNoDialog Вы можете попробовать это, если хотите
Szenis

Ответы:


88

К сожалению, нет кроссбраузерной поддержки для открытия диалогового окна подтверждения, которое не является парой ОК / Отмена по умолчанию. В предоставленном вами решении используется VBScript, который доступен только в IE.

Я бы предложил вместо этого использовать библиотеку Javascript, которая может создавать диалог на основе DOM. Попробуйте Jquery UI: http://jqueryui.com/


17

Единственный способ сделать это кроссбраузерным способом - использовать фреймворк, такой как jQuery UI, и создать собственный диалог:

диалог jquery

Это не работает точно так же, как встроенное всплывающее окно подтверждения, но вы должны иметь возможность заставить его делать то, что вы хотите.


4
Для ясности, это не ЕДИНСТВЕННЫЙ способ - вы, конечно, можете написать свой собственный на Javascript, не то чтобы это было бы правильно.
LeonardChallis

1
@LeonardChallis, но включать большую библиотеку только для функциональности модального div лучше? Я так не думаю
nicholaswmin

8

Вы также можете использовать http://projectshadowlight.org/jquery-easy-confirm-dialog/ . Это очень просто и удобно. Просто включите общую библиотеку jquery и еще один файл:

<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

Вы не можете сделать этот кроссбраузер с помощью функции confirm () или аналогичной. Я настоятельно рекомендую вам использовать что-то вроде диалогового окна jQuery UI, чтобы вместо этого создать диалоговое окно HTML.



3

Рекомендуемая (но небольшая и простая) библиотека, которую вы можете использовать, - это JSDialog: js.plus/products/jsdialog.

Вот пример создания диалога с кнопками Да и Нет:

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

Скриншот демонстрации JS Dialog


1
Эй, а где это скачать?
Гэри

@Gary Links уже несколько десятилетий по умолчанию использует синий подчеркнутый текст. Наведите указатель мыши на синий текст в первой строке этого ответа и нажмите левую кнопку.
Брошенная тележка

премиум-плагины не помогают программисту
Крис Пинк,

1

вы можете использовать sweetalert.

импортировать в свой HTML:

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

и активировать предупреждение:

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

для получения дополнительных данных посетите веб-сайт sweetalert alert


0

1) Вы можете скачать и загрузить на свой сайт указанные ниже файлы.

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

2) после этого вы можете напрямую использовать приведенный ниже код

$ .alerts.okButton = "да"; $ .alerts.cancelButton = "нет";

в функции document.ready.

Пожалуйста, попробуйте, это сработает.

Спасибо


-11

очень конкретный ответ на этот вопрос - подтвердить диалог Js Function:

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

Он показывает диалоговое окно с кнопками ОК отменить, заменить эту кнопку на Да Нет - не такая простая задача, для этого вам нужно написать функцию jQuery.


1
Он хотел получить ответ «да» и «нет». Это подтверждение дает только согласие или отмену. Вот почему это отклоняется.
SpoiledTechie.com
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.