1

私はブートストラップモーダルを開くスクリプトに取り組んでいます。次に、「確かに」ボタンで選択を確認し、次にそのpost()を確認し、それが正常に送信された場合、コメントフォームをモーダルボディにロードします。コメントフォームはパーシャルに格納されており、コメントはwysihtml5を使用しています。これが私の現在のコードです:

    modal_div.find('.confirm-o-c').click(function(ee){
            $.post(
                lnk.attr('href'),
                function(data, textStatus, jqxhr){
                    console.log(data);

                    var lbl = lnk.parent().prev().children('.label').first();
                    lbl.fadeOut('fast');
                    lbl.attr('class','label label-'+data.status)
                       .text(data.text)
                       .fadeIn('fast');
                    var newlnk = $('<a href="#">newlink</a>');
                    newlnk.attr('href',lnk.attr('href').replace('complete','revert'));
                    lnk.parent().append(newlnk);
                    lnk.remove();
                    var status = data.status;
                    var id = data.object.id;
                    var objective_id = data.object.objective_id;

                    if(status === 'submitted'){
                        modal.fadeOut('fast', function(){
                            modal.load('<?=URL::to_action('objectives/completion_comment/')?>/'+id, function(){  
                                modal.fadeIn('fast');
                                $('#message-'+objective_id).wysihtml5();

                            });

                            $('#confirm-objective-complete').addClass('modal-large');
                            $('#submit-comment').css("display", "inline-block");
                            oldfooterbtn.css("display", "none");
                            footerbtncancel.css("display", "none"); 
                            footerbtnclose.css("display", "none");  
                            confirmtext.css("display", "none");                 
                        });
                    };

                });
            // objectives.init();
            ee.preventDefault();

問題 確認後、投稿はうまく機能し、送信されたものを返しますが、コメントフォームがリードされると、コンソールは8回のように発生していることを示し、このエラーが発生します TypeError: f.contentWindow is null

私は次のようなものを見てきました:

    $(this).one('load', function () {
        console.log("load complete");
    });'

しかし、私のように URL を使用して実装する方法がわかりませんでした。どんな助けでも大歓迎です。

私のコードを見ていただきありがとうございます。

4

3 に答える 3

1

これは、変数 modal が$('.modal-body')DOM 内の複数のインスタンスであるときに設定されているために発生していました。絞り込むとvar modal = modal_div.find('.modal-body');、現在のモーダルボディのみを選択できました。

于 2012-11-13T22:12:40.323 に答える
0

このように: http://api.jquery.com/load/

$(this).load('myurl/page',{/*JSON data*/},function () {
    console.log("load complete");
});'
于 2012-11-13T20:14:27.130 に答える