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
});
});