我有一个通过jquery showform.phtml
加载到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加载的div showform创建一个名为#News的表单。
当我将js代码插入到showform的主体中时,它可以工作。当我将它附加到headScript时,它不起作用。
答案 0 :(得分: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
});
});