Диалог Jquery UI вместо подтверждения JavaScript - PullRequest
5 голосов
/ 10 августа 2011

У меня есть куча процессов проверки javascript с подтверждениями. Я хочу использовать диалоговое окно jquery ui, но мне нужно вернуть true для остальных процессов проверки.

Например:

var where_to_coupon = confirm(pm_info_msg_013);
      if (where_to_coupon== true) {
      doSubmit=true;
      return doSubmit;

Поэтому мне нужна функция для замены подтверждения в диалоговом окне пользовательского интерфейса, получения строки сообщения (pm_info_msg_013) и использования моих собственных кнопок или кнопок пользовательского интерфейса для возврата true для процесса проверки.

Не уверен, с чего начать.

помощь

Ответы [ 3 ]

10 голосов
/ 10 августа 2011

В диалоговом окне пользовательского интерфейса jQuery установите для параметра modal значение true и укажите основные и дополнительные действия пользователя с параметром buttons.

    $( "#dialog-confirm" ).dialog({
        resizable: false,
        height:140,
        modal: true,
        buttons: [{
            text: pm_info_msg_013,
            click : function() {    
                $( this ).dialog( "close" );
                // code related to "where_to_coupon== true" goes here
                // submit form
                }
            }, {
            text: "Cancel",
            click: function() {
                $( this ).dialog( "close" );
                doSubmit = false;
                // don't submit form
            }}]
    });

См. Демонстрацию здесь: http://jqueryui.com/demos/dialog/#modal-confirmation

Обновление: Это позволит вам создать несколько подтверждений.Использование:

function CreateDialog(okText, cancelText, okCallback, cancelCallback) {
        $( "#dialog-confirm" ).dialog({
            resizable: false,
            height:140,
            modal: true,
            buttons: [{
                text: okText,
                click : function() {    
                    $( this ).dialog( "close" );
                    okCallback();
                    }
                }, {
                text: cancelText,
                click: function() {
                    $( this ).dialog( "close" );
                    cancelCallback();
                }}]
            }
        });

// ******* usage #1 ********    
CreateDialog(pm_info_msg_013, "Cancel", function () {
   // where_to_coupon== true
}, function() {

   // where_to_coupon== false
});

function OnConfirmTrue() {
  // do something
}

function OnConfirmFalse() {
  // do something
}

// ******* usage #2 ********

CreateDialog(pm_info_msg_013, "Cancel", OnConfirmTrue, OnConfirmFalse);
1 голос
/ 10 августа 2011

Я создал плагин для jQuery UI под названием dialogWrapper, который предоставляет несколько методов, включая метод подтверждения. Вы называете это так:

$.confirm("Prompt", function(){}, function(){}, {});

Второй и третий аргументы: что делать, когда нажимаются кнопки «да» и «нет» соответственно. Четвертый для дополнительных аргументов.

Проверьте это здесь: http://code.google.com/p/dialogwrapper/

Однако он не работает как родной метод JavaScript confirm, поскольку он асинхронный. Таким образом, вы не сможете напрямую перезаписать confirm с помощью $.confirm.

0 голосов
/ 22 ноября 2013

Вы пробовали Impromtu от Трента Ричардсона?

http://trentrichardson.com/Impromptu/

Этот плагин JQuery может дать вам контроль, который вы ищете с подсказками и подтверждениями и многое другое.

...