Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript/jQuery+;日期时间选择器:动态添加的输入不';t显示火灾日期时间选择器。_Javascript_Jquery_Jquery Ui_Datetimepicker_Appendchild - Fatal编程技术网

JavaScript/jQuery+;日期时间选择器:动态添加的输入不';t显示火灾日期时间选择器。

JavaScript/jQuery+;日期时间选择器:动态添加的输入不';t显示火灾日期时间选择器。,javascript,jquery,jquery-ui,datetimepicker,appendchild,Javascript,Jquery,Jquery Ui,Datetimepicker,Appendchild,我试图弄清楚为什么我动态添加的输入块(在表的单元格中)不会触发日期时间选择器。我提供了一个概念验证代码块来演示这个问题。如果按原样运行此代码,则默认的输入标记(id:dti1)工作正常,并弹出日期时间选择器,允许用户选择日期和时间。但是,当您单击“添加另一个”时,datetime选择器不会在新的输入元素上弹出,即使它与正确关联的dtpick类一起正确显示。我的假设是datetime选择器与页面加载上的每个dtpick类元素相关联,所以这就是datetime选择器不工作的原因。当我动态添加行时,是

我试图弄清楚为什么我动态添加的输入块(在表的单元格中)不会触发日期时间选择器。我提供了一个概念验证代码块来演示这个问题。如果按原样运行此代码,则默认的输入标记(id:dti1)工作正常,并弹出日期时间选择器,允许用户选择日期和时间。但是,当您单击“添加另一个”时,datetime选择器不会在新的输入元素上弹出,即使它与正确关联的dtpick类一起正确显示。我的假设是datetime选择器与页面加载上的每个dtpick类元素相关联,所以这就是datetime选择器不工作的原因。当我动态添加行时,是否有任何方法强制这样做

<html>
<head>
<!-- includes: jquery, jquery_ui_datepicker, timepicker-- references removed here-->
<script>
  $(document).ready(function(){
   $('.dtpick').datetime({
     userLang   : 'en',
     americanMode: true});
   });
   function addItem() 
   {
    var t = document.getElementById('myTable');
        var row = t.insertRow(-1);
        var c1 = row.insertCell(0);

        var c1content=document.createElement("input");
        c1content.setAttribute("type","text");
        c1content.setAttribute("name","dtnew");
        c1content.setAttribute("id","dtinew");  
        c1content.setAttribute("class","dtpick");
        c1content.setAttribute("value","2011-08-20 01:00:00");

        c1.appendChild(c1content);  
   }
</script>
</head>
<body>
<table id="myTable">
<tr>
  <td><b>Row Header:</b></td>
</tr>
<tr>
  <td><input type="text" name="dt1" id="dti1" class="dtpick" value="2011-08-21 01:00:00"></td>
</table><br>
<a onclick="addItem()"> Add another</a> 
</body>
</html>

$(文档).ready(函数(){
$('.dtpick').datetime({
userLang:'en',
americanMode:true});
});
函数addItem()
{
var t=document.getElementById('myTable');
变量行=t.insertRow(-1);
var c1=行插入单元格(0);
var c1content=document.createElement(“输入”);
c1content.setAttribute(“类型”、“文本”);
c1content.setAttribute(“name”、“dtnew”);
c1content.setAttribute(“id”、“dtinew”);
c1content.setAttribute(“类”、“dtpick”);
c1content.setAttribute(“值”,“2011-08-20 01:00:00”);
c1.追加子项(c1内容);
}
行标题:

再加一个
非常感谢您的帮助


David

添加项目后,需要重新初始化日期选择器小部件。换句话说,它应该是这样的:

function addItem() 
{
    var t = document.getElementById('myTable');
    var row = t.insertRow(-1);
    var c1 = row.insertCell(0);

    var c1content=document.createElement("input");
    c1content.setAttribute("type","text");
    c1content.setAttribute("name","dtnew");
    c1content.setAttribute("id","dtinew");  
    c1content.setAttribute("class","dtpick");
    c1content.setAttribute("value","2011-08-20 01:00:00");

    c1.appendChild(c1content);

    $('.dtpick').datetime({
        userLang: 'en',
        americanMode: true});
    });
}

好极了,这很有效。接下来的问题——在我的实际实现中,我实际上正在为我创建的每个输入生成单元名称/id值。如果我在dtpick类中有大量的输入,那么
$('.dtpick').datetime
$('#uniqueID').datetime({
)之间是否存在性能差异?似乎使用该类比使用唯一ID更优雅,因此是更好的方法,但可能会有其他人来纠正我。