Javascript jQuery日期选择器不适用于动态HTML

Javascript jQuery日期选择器不适用于动态HTML,javascript,php,jquery,ajax,datepicker,Javascript,Php,Jquery,Ajax,Datepicker,我问过这个问题,也问过。然而,提议的答案都不起作用。几天后,这个问题仍然没有得到解决。因此我又问了一次,再问一些细节,看看是否有人能帮我解决这个问题 我有一个从服务器端通过Ajax生成的输入字段,并插入到当前页面中。我的问题是:当通过Ajax生成输入字段时,jQuery日期选择器不处理该字段,但当该字段直接放置在页面中时,它会工作 下面,我包含了我的代码的缩小版本 HTML代码: <form id="user-form"></form> 这里是inputfield-lo

我问过这个问题,也问过。然而,提议的答案都不起作用。几天后,这个问题仍然没有得到解决。因此我又问了一次,再问一些细节,看看是否有人能帮我解决这个问题

我有一个从服务器端通过Ajax生成的输入字段,并插入到当前页面中。我的问题是:当通过Ajax生成输入字段时,jQuery日期选择器不处理该字段,但当该字段直接放置在页面中时,它会工作

下面,我包含了我的代码的缩小版本

HTML代码:

<form id="user-form"></form>
这里是inputfield-loader.php

<input type="text" name="firstname" id="firstname"></div>
<div><input type="text" name="email" id="email"></div>
<div><input type="text" name="birthdate" id="datefield"></div>
<div><input type="submit"></div>

如果输入字段只是硬编码到页面中,则一切正常。但是,当作为Ajax调用的返回字符串插入DOM时,日期选择器不再工作。但是,当我使用Chrome检查
datefield
字段时,我看到它已经向它添加了jQuery datepicker类
hasDatepicker
,这表明对
jQuery.datepicker()
方法的调用有效。但在点击字段时,我没有看到日期选择器弹出


根据@dfsq的建议,这是小提琴。它更接近原始代码:

inputfield loader.php
文件中缺少opening
div
标记,这可能会导致隐藏某些元素的问题


如果您在
$.ajax中使用了正确的标题和数据类型,它应该可以正常工作:

我也面临同样的问题。我把这个固定为

$(document).bind('click','#datefield',function(){
    $('#datefield').datepicker();
})

听起来这可能是一个事件委派问题,请检查一下,首先尝试输出
日期字段
字段,然后应用日期选择器。您的代码很好,日期选择器可以工作。这很可能是样式问题。然而,除非你用自己的风格复制这个问题,否则就不可能帮助你。否则没人能猜到原因。我使用了示例html echo,代码运行正常。使用
.html()
附加后,您在
console.log($(“#datefield”))
中看到了什么?我同意dfsq。另外,您的文件inputfield-loader.php缺少其前导的
div
标记。@dfsq,我的想法正是如此。然而,我似乎不知道是什么风格导致了这个问题。根据复制问题,页面有大量代码,你知道它是如何定义的,在单独的文件中定义的常量,函数等等,在这里复制整个内容几乎是不可能的。我只把datepicker代码的主要元素放在问题中。
$(document).bind('click','#datefield',function(){
    $('#datefield').datepicker();
})