2

ポップアップカラーボックスにフォームがあり、ユーザーがテキストボックスの1つを編集してキャンセルすると、「保存せずに終了してもよろしいですか?」のようなポップアップが必要です。現在、ポップアップが表示されていますが、ポップアップカラーボックスが既に閉じられた後に表示されています

ユーザー表ページ

 $('a.openDialog').colorbox({
                iframe: true,
                transition: "elastic",
                width: "75%", height: "90%"
            });

実際のフォームページ

 $(':input', 'form').bind("change", function () {
                setConfirmUnload(true);
             });


function setConfirmUnload(on) {

              window.onbeforeunload = (on) ? unloadMessage : null;
          }

          function unloadMessage() {
              return 'You have entered new data on this page.' +
        ' If you navigate away from this page without' +
        ' first saving your data, the changes will be' +
        ' lost.';
      }
4

2 に答える 2

2

カラーボックス コールバック onCleanup または onClose を使用しても問題が解決しない場合は、閉じるボタンまたは div にリスナーを追加できます。

于 2013-02-11T21:41:32.933 に答える
0

私は解決策を見つけました。カラーボックスの oncomplete 関数を呼び出す必要があります。コードは次のとおりです。

$("#cboxClose").click(function (e) {

                        // stop any other script from firing
                        e.stopPropagation();

                        if (confirm('You have unsaved changes, are you sure that you want to cancel? All of your changes will be lost.')) {
                            $.colorbox.close();
                            // ensure that the binding is removed when closed
                            $("#cboxClose").unbind();
                        }

                    });

                } // close oncomplete
于 2013-02-12T18:00:17.337 に答える