Javascript AJAX页面中的Jquery日期选择器

Javascript AJAX页面中的Jquery日期选择器,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有两页。1是jQuery的datepicker演示,另一个是用于加载datepicker演示页面的AJAX页面。当我直接访问datepicker页面时,日期选择器工作正常,如示例中所示。但是当我尝试用ajax调用加载它时,选择器似乎根本不起作用 下面是main.php页面代码 if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp = new XMLHttpReq

我有两页。1是jQuery的datepicker演示,另一个是用于加载datepicker演示页面的AJAX页面。当我直接访问datepicker页面时,日期选择器工作正常,如示例中所示。但是当我尝试用ajax调用加载它时,选择器似乎根本不起作用

下面是main.php页面代码

if (window.XMLHttpRequest) {
    // code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp = new XMLHttpRequest();
}
else {
    // code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState==4 && xmlhttp.status==200) {
        document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
}

xmlhttp.open("GET","development-bundle/demos/datepicker/default.html",true);
xmlhttp.send();
}
</script>
</head>

<body>
    <div id="myDiv"><h2>Let AJAX change this text</h2></div>
    <button type="button" onclick="loadXMLDoc()">Change Content</button>    
</body>
</html>
这是datepicker页面代码,与jquery中的演示代码相同

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>jQuery UI Datepicker - Default functionality</title>
    <link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
    <script src="../../jquery-1.6.2.js"></script>
    <script src="../../ui/jquery.ui.core.js"></script>
    <script src="../../ui/jquery.ui.widget.js"></script>
    <script src="../../ui/jquery.ui.datepicker.js"></script>
    <link rel="stylesheet" href="../demos.css">
    <script>
        $(function() {
            $( "#datepicker" ).datepicker();
        });
    </script>
</head>
<body>
    <div class="demo">    
        <p>Date: <input type="text" id="datepicker"></p>    
    </div><!-- End demo -->

    <div class="demo-description">
        <p>The datepicker is tied to a standard form input field.  Focus on the input (click, or use the tab key) to open an interactive calendar in a small overlay.  Choose a date, click elsewhere on the page (blur the input), or hit the Esc key to close. If a date is chosen, feedback is shown as the input's value.</p>
    </div><!-- End demo-description -->    
</body>
</html>
我真的迷路了。datepicker页面不能与AJAX一起工作。希望有人能帮上忙。

试试这个:

if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
     $( "#datepicker" ).datepicker();
    }
  }
xmlhttp.open("GET","development-bundle/demos/datepicker/default.html",true);
xmlhttp.send();
}
</script>

当接收到ajax请求时需要调用它

在main.php中需要这样

<script>
        function activateDatePicker() {
            $( "#datepicker" ).datepicker();
        }
    </script>
在日期选择器页面中

<input type="text" id="datepicker" onclick="activateDatePicker()">
您应该在main.php中包含javascript


这不是第一次,而是从第二次尝试选择日期开始,这就是您想要的

$('#datepicker').bind('focus', function() {
  $(this).datepicker();
});

您可能会遇到一些严重的问题,因为将整个HTML文档填充到现有页面上的页面中是无效的。你知道如何让它第一次工作吗???你也可以像下面的文档一样激活它。getElementByIdmyDiv.innerHTML=xmlhttp.responseText;活化铁皮钳;我遇到了完全相同的问题并尝试了你的解决方案,但没有成功。我从OP中看到的唯一不同是,我的名为page OP's default.html的ajax没有html文档代码,等等,我想知道您的解决方案是否与这种情况相关?解决了吗。我的主页上也有一个日期选择器,我把两个日期选择器的id设置为相同的。在这里找到了答案:值得注意的是,当收到ajax请求时需要调用它,这意味着放置$datepicker.datepicker;在document.getElementByIdmyDiv.innerHTML=xmlhttp.responseText之后;否则就不行了。有一阵子我为这件事伤了脑筋。