为什么datepicker不能用于模态?

时间:2016-04-19 10:12:03

标签: javascript jquery jquery-ui datepicker bootstrap-modal

我的HMTL代码是这样的:

<!-- Button trigger modal -->
<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">Launch demo modal</button>
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                 <h4 class="modal-title" id="myModalLabel">Modal title</h4>

            </div>
            <div class="modal-body">
                <div class="col-md-12">
                    <div class="row">
                        <label for="idTourDateDetails">Tour Start Date:</label>
                        <div class="form-group">
                            <div class="input-group">


                            </div>
                        </div>
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                </div>
            </div>
        </div>
        <!-- /.modal-content -->
    </div>
    <!-- /.modal-dialog -->
</div>
<!-- /.modal -->

我的Javascript代码是这样的:

$('#idTourDateDetails').datepicker();


var isitable = '<input type="text" name="idTourDateDetails" id="idTourDateDetails" readonly="readonly" class="form-control clsDatePicker"> <span class="input-group-addon"><i id="calIconTourDateDetails" class="glyphicon glyphicon-th"></i></span>';
$("#myModal").find(".input-group").html(isitable);

演示是这样的:https://jsfiddle.net/oscar11/xzxrp7nn/

当我点击输入文字输入日期时,datepicker无法正常工作

解决我问题的任何解决方案?

非常感谢

2 个答案:

答案 0 :(得分:1)

尝试以下方法:

var isitable = '<input type="text" name="idTourDateDetails" id="idTourDateDetails" readonly="readonly" class="form-control clsDatePicker"> <span class="input-group-addon"><i id="calIconTourDateDetails" class="glyphicon glyphicon-th"></i></span>';
    $("#myModal").find(".input-group").html(isitable);
    $('#idTourDateDetails').datepicker();

原因,您在通过jQuery分配之前调用了datepicker。

答案 1 :(得分:1)

首先:为什么要用jQuery附加输入/你可以直接将它放在那里。问题是因为在元素存在之前调用了datepicker()。

更新了小提琴:https://jsfiddle.net/xzxrp7nn/1/

&#13;
&#13;
<div class="form-group">
  <div class="input-group">

    <input type="text" name="idTourDateDetails" id="idTourDateDetails" class="form-control clsDatePicker"> <span class="input-group-addon"><i id="calIconTourDateDetails" class="glyphicon glyphicon-th"></i></span>
  </div>
</div>
&#13;
&#13;
&#13;

注意:我已从文本框中删除了readonly。但你可以添加它。