Bootstrap datepicker is working in plain HTML but not in (#).html()

Viewed 63

Working in html :

<input class="m-ctrl-medium date-picker" size="16" type="text" id='lateETD1' name="dateRecv" value=""/>

Not working in :

var ETD = $("#ETD");
ETD.html("<input class='m-ctrl-medium date-picker' id='lateETD1' name="dateRecv" size='16' type='text'  value=''/>");

Problem in DOM Insertion. A simple textbox appear instead of datepicker.

3 Answers

Try this:

var ETD = $("#ETD");
ETD.html("<input class='m-ctrl-medium date-picker' id='lateETD1' name="dateRecv" size='16' type='text'  value=''/>");
$(ETD).datepicker();

It's because you are presumably initialising the date picker when the DOM loads, which is before the new element exists. You need to initialise it again on the new element after it's appended to the DOM, something like this:

$('<input class="m-ctrl-medium date-picker" id="lateETD1" name="dateRecv" size="16" type="text" value="" />').appendTo('#ETD').datepicker()

You need to reinitialize the datepicker after adding textbox dynamically from script.

var ETD = $("#ETD");
ETD.html("<input class='m-ctrl-medium date-picker' id='lateETD1' name='dateRecv' size='16' type='text'  value=''/>");

$('#lateETD1').datepicker({
    autoclose: true
});
<link rel="stylesheet" src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.3.0/css/datepicker3.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.3.0/js/bootstrap-datepicker.js"></script>

<div id='ETD'></div>

Related