如何动态添加日期时间选择器

how to add datetimepicker dynamically?

本文关键字:添加 日期 时间 选择器 动态 何动态      更新时间:2023-09-26

有没有办法在我的页面上动态添加日期时间选择器?我能够添加表单元素,但是日期选择器功能不起作用。

这是表单布局

截图 1:http://i614.photobucket.com/albums/tt226/civicclubphilippines/1_zpswf7pxjxz.png截图 2:http://s614.photobucket.com/user/civicclubphilippines/media/test/2_zpspzjdb7yb.png.html

网页代码

        <div class="modal-footer">
      <button type="button" class="btn btn-default add-another"><span class="glyphicon glyphicon-plus"></span> Add another</button>
    </div>

JS代码

    $(document).ready(function() {
      $(".add-another").click(function(){
        var assgnee = $('#assigneeInit').html();
        var rnd = Math.ceil(Math.random()*1000);
        $(".add-another-container").append('<div class="form-group"><hr>'
           +'           <div class="col-md-4"></div>'
           +'           <div class="col-md-6">'
           +'                 <input required="" class="form-control" placeholder="Task name" type="text" size="50" name="taskname[new][]" id="taskname" value="">'
           +'                 <div class="help-block with-errors"></div>'
           +'           </div>'
           +'            <div class="col-md-4"></div>'
           +'           <div class="col-md-6">'
           +'             <textarea required="" class="form-control" placeholder="Task description" name="task-description[new][]" id="task-description" rows="2"></textarea>'
           +'             <div class="help-block with-errors"></div>'
           +'           </div>'
           +'           <div class="col-md-4"></div>'
           +'           <div class="col-md-6" id="assigneeCol"><select required class="form-control" name="assignee[new][]" id="assigneeInit'+rnd+'">'+assgnee+'</select>'
           +'             <div class="help-block with-errors"></div>'
           +'           </div>'
           +'            <div class="col-md-4"></div>'
           +'           <div class="col-md-6">'
           +'             <input placeholder="Due date" class="date-picker-manual datepicker hasDatepicker" type="text" name="due-date[new][]" id="datepicker'+rnd+'"><img class="ui-datepicker-trigger" id="trigger'+rnd+'" src="images/calendar.gif" alt="..." title="...">'
           +'           </div>'
           +'         </div>');

          $(".datepicker").datepicker({
            showOn: "button",
            buttonImage: "images/calendar.gif",
            buttonImageOnly: true,
            onSelect: function(dateText, inst) {
            //dateText comes in as MM/DD/YY
            var datePieces = dateText.split('/');
            var month = datePieces[0];
            var day = datePieces[1];
            var year = datePieces[2];
            //define select option values for
            //corresponding element
            $('select#month').val(month);
            $('select#day').val(day);
            $('select#year').val(year);
            }
          });
      });

  });

我需要添加动态添加的日期选择器,其中包含来自变量 rnd 的串联 id 值

有没有办法做到这一点?

非常感谢

建议和回答。

谢谢!

在这里:

+'<input placeholder="Due date" class="date-picker-manual datepicker" type="text" name="due-date[new][]" id="datepicker'+rnd+'">'
+'<img class="ui-datepicker-trigger" id="trigger'+rnd+'" src="images/calendar.gif" alt="..." title="...">'

您需要从输入控件中删除类hasDatepicker,追加后可以放置日期选取器初始化代码。

<小时 />

注意:

hasDatepicker是当你的目标元素是日期选择器时添加的类,但是如果你将这个类添加到你的元素中,那么jQuery/jQueryUI将忽略这个元素,以将其初始化为日期选择器,所以hasDatepicker不应该添加到元素中

正如@Jai已经提到的,您需要删除hasDatepicker,因为尚未添加日期选择器。 追加后初始化datepicker

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" rel="stylesheet" type="text/css" />
<script src="https://code.jquery.com/jquery-1.11.3.js"></script>
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script>
 $(document).ready(function() {
	      $(".add-another").click(function(){
	        var assgnee = $('#assigneeInit').html();
	        var rnd = Math.ceil(Math.random()*1000);
	        $(".add-another-container").append('<div class="form-group"><hr>'
	           +'           <div class="col-md-4"></div>'
	           +'           <div class="col-md-6">'
	           +'                 <input required="" class="form-control" placeholder="Task name" type="text" size="50" name="taskname[new][]" id="taskname" value="">'
	           +'                 <div class="help-block with-errors"></div>'
	           +'           </div>'
	           +'            <div class="col-md-4"></div>'
	           +'           <div class="col-md-6">'
	           +'             <textarea required="" class="form-control" placeholder="Task description" name="task-description[new][]" id="task-description" rows="2"></textarea>'
	           +'             <div class="help-block with-errors"></div>'
	           +'           </div>'
	           +'           <div class="col-md-4"></div>'
	           +'           <div class="col-md-6" id="assigneeCol"><select required class="form-control" name="assignee[new][]" id="assigneeInit'+rnd+'">'+assgnee+'</select>'
	           +'             <div class="help-block with-errors"></div>'
	           +'           </div>'
	           +'            <div class="col-md-4"></div>'
	           +'           <div class="col-md-6">'
	           +'             <input placeholder="Due date" class="date-picker-manual datepicker" type="text" name="due-date[new][]" id="datepicker'+rnd+'"><img class="ui-datepicker-trigger" id="trigger'+rnd+'" src="images/calendar.gif" alt="..." title="...">'
	           +'           </div>'
	           +'         </div>');
             $(".datepicker").datepicker();
	      });
       
}); 
</script>
<div class="add-another-container"></div>
<div class="modal-footer">
      <button type="button" class="btn btn-default add-another"><span class="glyphicon glyphicon-plus"></span> Add another</button>
    </div>