jquery对话框使用datetimepicker加载url

时间:2012-10-17 21:35:36

标签: javascript jquery

我已经构建了2个页面,1这是一个页面,其中有一个链接打开一个对话框并在该对话框中加载另一个页面,一旦对话框打开并加载另一个页面,这个页面有一个日历但是当我点击它给出了以下错误的日历:无法读取未定义的属性“内联”

我无法解释错误,好像我运行了datepicker运行日历的文件,但是一旦我通过打开对话框从第一页执行它就会出错。

下面是page1和page2的来源:

<!--PAGE1.PHP-->

<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.0/themes/base/jquery-ui.css"  />
<script src="http://code.jquery.com/jquery-1.8.2.js"></script>
<script src="http://code.jquery.com/ui/1.9.0/jquery-ui.js"></script>
<script>
function loadurl() {
$(function() {
    $("#dialog").load('page2.php').dialog({modal:true}); 
});
}
</script>
</head>
<body>

<a href="#" onClick="return val()">teste</a>
<div id="dialog" title="Dialog"></div>

</body>
</html>


<!-- PAGE2.PHP -->


<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.0/themes/base/jquery-ui.css"  />
<script src="http://code.jquery.com/jquery-1.8.2.js"></script>
<script src="http://code.jquery.com/ui/1.9.0/jquery-ui.js"></script>

<script>
$(function() {
    $( "#datepicker" ).datepicker();
});
</script>
</head>
<body>
<p>Date: <input type="text" id="datepicker" /></p>
</body>
</html>

2 个答案:

答案 0 :(得分:0)

$ .load不会在加载的页面上运行脚本

该脚本不会在新页面上运行,因为原始页面上的就绪功能不会触发它。任何用于第二页的脚本都需要在第一页的$ .load函数的成功监听器中运行

答案 1 :(得分:0)

代码有一些东西。首先,您需要确定PAGE2.php是什么;它是页面的组件还是独立页面的组件。 .load()将下载的代码直接插入DOM。因此,您可以将PAGE2.php删除到:

<script>
$(function() {
    $( "#datepicker" ).datepicker();
});
</script>
<p>Date: <input type="text" id="datepicker" /></p>

或者,您可以通过提供选择器加载.load()下载页面的一部分:例如, $('#dialog').load('page2.php #datepicker')

另一件事是将PAGE2.php加载到DOM中的语句,即$("#dialog").load('page2.php').dialog({modal:true})。您要做的是在使用.dialog()呈现页面之前首先加载页面(可能在后台)。所以,它应该是这样的:

$("#dialog").load('page2.php', function() { $(this).dialog({modal:true})​ })​