Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ui Zend Framework 2-jquery模式弹出问题_Jquery Ui_Zend Framework2 - Fatal编程技术网

Jquery ui Zend Framework 2-jquery模式弹出问题

Jquery ui Zend Framework 2-jquery模式弹出问题,jquery-ui,zend-framework2,Jquery Ui,Zend Framework2,我有一个视图showform.phtml,它通过jquery对话框加载到一个div中。在视图中,我正在加载带有$(form).submit()监听器的javascript。问题是,javascript从未加载。我尝试了几种不同的方法,包括$this->headScript()->appendScript(script),$this->headScript()->appendScript(file)。我甚至试着在布局和索引视图中包含脚本,这样它就可以使用了。。。但是弹出窗口从不触发它 我怀疑这与我

我有一个视图
showform.phtml
,它通过jquery
对话框
加载到一个div中。在视图中,我正在加载带有
$(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加载到该div中 showform创建一个名为#News的表单


当我将js代码插入showform的主体时,它就起作用了。当我将此附加到headScript时,它不起作用。

也许这是您的解决方案

要求:必须已经加载模式视图的脚本(例如在application.js中)


它的逻辑是:setTerminal(true)是不加载布局,而您的headScript助手位于布局中。尝试在视图中打印JS或将其包含到主JS中(在调用模态时已加载该JS)。我尝试过,甚至在布局中加载了它,但它似乎对视图不可见。(或者视图对js似乎不可见)。我并没有试着只是将视图加载到主体中。。。我要试一试。谢谢。所以,如果我将脚本插入到视图主体中,它就可以工作了。首先,这不是一个很好的状态,但我不应该这么做!我确信有些应用程序使用js和模式弹出窗口。有什么好处?有解决方法吗?理想情况下,
validateajax
操作应该做的是返回一个带有错误消息数组的JSON响应——如果没有错误消息,则返回空JSON。在这种情况下,请使用JSONModel。没有必要仅仅为了验证目的而返回一个真正的HTML视图,我的问题是javascript监听器没有“听到”视图。我让它工作的唯一方法是如果javascript在视图的主体中,这不是好的约定。
$("#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
    }); 
});