如何动态创建引导日期选择器? [英] How to dynamically create bootstrap datepicker?

查看:23
本文介绍了如何动态创建引导日期选择器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要使用 jQuery 动态创建一个日期选择器.在我的表单中,我将有按钮来创建日期选择器.

以下是我目前尝试过的代码:

<div class="form-group"><label for="examDate" class="col-sm-2 caption"><fmt:message key="exam.date"/>:<strong style="font-size:14px;"class="星号">*</strong><div class="col-sm-4"><div class="input-group date"><input type="datetime" class="form-control ExamDate" id="examDate" name="examDate" value="" readonly ><div class="input-group-addon" class="examDateCalendarIcon"><i class="fa fa-calendar"></i>

<div class="help-block with-errors"></div>

<div class="form-group ExamDateTemplate" style="display: none;"><label for="examDate" class="col-sm-2 caption"></label><div class="col-sm-4"><div class="input-group date"><input type="datetime" class="form-control ExamDate" name="examDate" value="" readonly ><div class="input-group-addon" class="examDateCalendarIcon"><i class="fa fa-calendar"></i>

<div class="input-group-addon"><i class="fa fa-minus-circle"></i>

<div class="form-group"><label for="examDate" class="col-sm-2 caption"><div class="col-sm-4"><button id="addExamDateBtn" type="button" class="btn btn-sm btn-primary"><span class="fa fa-plus">&nbsp;</span><fmt:message key="add"/>

JavaScript 代码如下:

$("#addExamDateBtn").click(function(){var ExamDateClonedObj = $(".examDateTemplate").clone();$(examDateClonedObj).removeClass("examDateTemplate");$(examDateClonedObj).appendTo("#examDatesContainer");$(examDateClonedObj).show();$('.datepicker').datetimepicker('update');});$('.examDate').datetimepicker({格式:'DD/MM/YYYY',忽略只读:真,showTodayButton: 真});

基本上我最初只显示一个日期选择器.然后我有一个按钮来添加更多的日期选择器.日期选择器的模板是隐藏的,点击添加更多"按钮,我只需克隆它并将其添加到 DOM.

解决方案

使用下面的代码

$('body').on('focus',".examDate", function(){$(this).datetimepicker({格式:'DD/MM/YYYY',忽略只读:真,showTodayButton: 真});});

这样动态创建的元素也可以初始化日期时间选择器.

发布了一个工作示例:Jsfiddle

I need to create a date picker dynamically using jQuery. In my form I will have button to create date picker.

Below is the code I tried so far:

<div id="examDatesContainer">
    <div class="form-group">
        <label for="examDate" class="col-sm-2 caption">
            <fmt:message key="exam.date"/>:<strong style="font-size:14px;" class="asterisk">*</strong>
        </label>
        <div class="col-sm-4">
            <div class="input-group date">
                <input type="datetime" class="form-control examDate" id="examDate" name="examDate" value="" readonly >
                <div class="input-group-addon" class="examDateCalendarIcon">
                    <i class="fa fa-calendar"></i>
                </div>
            </div>
            <div class="help-block with-errors"></div>
        </div>
    </div>

    <div class="form-group examDateTemplate" style="display: none;">
        <label for="examDate" class="col-sm-2 caption"></label>
        <div class="col-sm-4">
            <div class="input-group date">
                <input type="datetime" class="form-control examDate" name="examDate" value="" readonly >
                <div class="input-group-addon" class="examDateCalendarIcon">
                    <i class="fa fa-calendar"></i>
                </div>
                <div class="input-group-addon">
                    <i class="fa fa-minus-circle"></i>
                </div>
            </div>
        </div>
    </div>

</div>

<div class="form-group">
    <label for="examDate" class="col-sm-2 caption">
    </label>
    <div class="col-sm-4">
        <button id="addExamDateBtn" type="button" class="btn btn-sm btn-primary">
            <span class="fa fa-plus"> &nbsp;</span>
            <fmt:message key="add"/>
        </button>
    </div>
</div>

and the JavaScript code is as below:

$("#addExamDateBtn").click(function(){
    var examDateClonedObj = $(".examDateTemplate").clone();
    $(examDateClonedObj).removeClass("examDateTemplate");
    $(examDateClonedObj).appendTo("#examDatesContainer");
    $(examDateClonedObj).show();
    $('.datepicker').datetimepicker('update');
});

$('.examDate').datetimepicker({
    format: 'DD/MM/YYYY',
    ignoreReadonly: true,
    showTodayButton: true
});

Basically I show a single datepicker initially. Then I have a button to add more date pickers. Template for datepicker is hidden, on click of "add more" button I just clone it and add it to the DOM.

解决方案

Use this code below

$('body').on('focus',".examDate", function(){
  $(this).datetimepicker({
   format: 'DD/MM/YYYY',
   ignoreReadonly: true,
   showTodayButton: true
 });
});

This way the dynamically created elements can also initialize the datetimepicker.

A working example is posted : Jsfiddle

这篇关于如何动态创建引导日期选择器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
其他开发最新文章
热门教程
热门工具
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆