0

カラーボックス コールバックを実装する方法について助けが必要です。これを行う方法がわかりません。

ユーザーが親フォームの「画像の追加」ボタンをクリックすると、カラーボックスのモーダル ウィンドウにポップアップするフォームがあります。ユーザーはこのフォーム (filemanager と呼ばれる) から画像を選択またはアップロードします。現在、そのフォームには、カラーボックスが閉じる前に親フォームにデータを入力するスクリプトがあります。この方法は機能します。

ただし、このファイルマネージャーを他のページで再利用したいので、この方法は実用的ではないため、フォームがアップロードされたアイテムの値を返し、親フォームが必要なものを処理できるように再設計しようとしています。フォームで更新されます-ファイルマネージャーをアプリでもう少し普遍的にします。

colorbox の close メソッドをカスタマイズする投稿を見つけました。

jQuery(document).ready(function($) {

    var originalClose = $.colorbox.close;
    $.colorbox.close = function(){
        var response;
        if($('#cboxLoadedContent').find('form').length > 0){
           response = confirm('Do you want to close this window?');
           if(!response){
              return; // Do nothing.
           }
        }

        alert(filename); 
        //do something before close
        originalClose();
    }; 

    $('#add-image').click(function(event) {
        $.colorbox({href:"/filemanager/"});
        return false;
    });
});

モーダル フォームには、'filename' という名前のスクリプト変数があり、単純に参照できると思っていました。ここでのテストでは未定義です。

モーダルフォームから値を取得する最良の方法は何ですか (これは javascript 変数として存在しますか? グローバル変数について考える必要がありますか?

colorbox が close コールバックで値を返す方法はありますか?

ajax フォームをプルして値を返すことができる colorbox の代替手段はありますか?

道に迷い、迷う。

ありがとう

4

1 に答える 1

0

カラーボックス プラグインで次のような publicMethod を記述し、呼び出しの onClosed イベントでその publicMethod を呼び出して、データを取得できます。

colorbox プラグインで、次の変更を行います。

publicMethod.get_selected_files = function() {
// You can store all the selected files in an array which will be defined as the global variable inside colorbox plugin 
    return selectedFiles;
}

カラーボックスを呼び出している呼び出しで、次のように onClosed イベントを追加します。

onClosed:function(){
    $.colorbox.get_selected_files();
}
于 2018-07-30T12:03:07.707 に答える