1

showform.phtmljquery を介して div にロードされるビューがありますdialog$(form).submit()ビューでは、リスナーを使用して JavaScript をロードしています。問題は、javascript が読み込まれないことです。$this->headScript()->appendScript(script)、 など、いくつかの異なる方法を試しました$this->headScript()->appendScript(file)。確実に利用できるように、レイアウトとインデックスビューにスクリプトを含めてみました...しかし、ポップアップは決してそれを起動しません。

フォームビューで使用しているという事実と関係があると思われsetTerminal(true)ます...しかし、代替手段が何であるかわかりません。

トラブルシューティングに関するアドバイスはありますか?または、この問題の経験はありますか?

ありがとう

編集: これは、index.phtml ビューに読み込まれる javasctipt のサンプルです。

$(function()
{    
    $("form#News").submit(function()
    {
        $.ajax(
        {
            type: 'POST',
            url: '/main/manage/validateajax',
            data: $('form#News').serialize(),
            success: 'success'
        });

        return false;
    });
});

ビューの本体は、showform.phtml が showform にロードする div であり、#News というフォームを作成します。

js コードを showform の本文に挿入すると、機能します。これを headScript に追加すると、機能しません。

4

1 に答える 1

0

多分それはあなたのための解決策です。

要件: モーダル ビューのスクリプトが既に読み込まれている必要があります (たとえば、application.js内) 。

$("#loadModalBtn").click(function(e){
    e.preventDefault();

    var url = $(this).attr("href");

    $("#modalContainer").load(url, function(){  // that's the point

        var urlForm = $("form#News").attr("action");

        $("form#News").submit(function(){
            $.ajax({
                type: 'POST',
                url: urlForm,
                data: $('form#News').serialize(),
                success: 'success'
            });
            return false;
        });
    }).dialog({
        height: 140,
        modal: true
    }); 
});
于 2013-04-30T08:18:13.410 に答える