Возвращение значения из диалогового окна подтверждения с помощью диалогового окна JQuery UI

Я использую диалоговое окно jQuery UI для отображения диалогового окна подтверждения при нажатии кнопки. Я хочу вернуть true , когда нажата OK и ложно в противном случае.

Связывание вызова открытия диалога в onClick (как указано здесь здесь , $ dialog.dialog ('open «); ) событие не служит цели. Итак, в качестве обходного пути я следовал подходу, который похож на этот: http://www.perfectline.co.uk/blog/unobtrusive-custom-confirmation-dialogs-with-jquery . Есть два различия между этим подходом и моим:

  1. В примере используется тег привязки и,
  2. Он не использует диалоговое окно jQuery UI.

Я изменил код, приведенный в ссылке примера, но он не работает , Интересно, что я делаю не так? Есть ли более дешевый способ сделать это?

Вот код, все CSS / JS ссылаются на jQuery CDN, поэтому вы должны иметь возможность скопировать код, чтобы увидеть поведение.




  
    
    
    
    
    Control Panel
  

  
    

Пояснение: Обратите внимание, что это очень просто (см. решение bryan.taylor ), чтобы сделать представление формы. То, что я хочу сделать здесь, это смоделировать отправку нажатием кнопки. Больше похоже на метод JavaScript verify () .

19
задан Community 23 May 2017 в 12:09
поделиться

1 ответ

Ваш код немного запутан, я думаю, есть гораздо более простой способ сделать это. Сначала вы должны создать экземпляр диалогового окна, а затем открыть его в событии щелчка для вашей кнопки. Код будет выглядеть примерно так:

<script>
$(document).ready(function () {
  var $myDialog = $('<div></div>')
    .html('You are about to start a war.<br/>Click OK to confirm.  Click Cancel to stop this action.')
    .dialog({
    autoOpen: false,
    title: 'Why so serious?',
    buttons: {
      "OK": function () {
        $(this).dialog("close");
        window.open('http://google.com/');
        return true;
      },
      "Cancel": function () {
        $(this).dialog("close");
        return false;
      }
    }
  });

  $('#myOpener').click(function () {
    return $myDialog.dialog('open'); //replace the div id with the id of the button/form
  });
});
</script>

<div id="myOpener"></div>

Вот документация jQuery UI Dialog API, так что вы можете увидеть все ваши варианты:

http://api.jqueryui.com/dialog/

8
ответ дан 30 November 2019 в 02:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: