1

我有一个showform.phtml通过 jquery 加载到 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;
    });
});

视图的主体是一个 div,showform.phtml 加载到 showform 中会创建一个名为 #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 回答