1

내 웹 페이지에 부트 스트랩 datepicker를 구현했습니다. CSS 스타일링을위한 부트 스트랩을 사용하고 있습니다. 부트 스트랩을 사용하면 마침내 JQuery와 Bootstrap JS가 페이지에 포함될 것을 권장합니다. 하지만 그렇게하는 것은 부트 스트랩 datepicker를 오작동시키는 것입니다. 다음은 부트 스트랩 드롭 다운을 위해 부트 스트랩 JS뿐만 아니라 datepicker를 사용할 수있는 내 페이지 스 니펫입니다. <div id="displaymasterblock"> 내부자바 스크립트 함수를 통해 페이지에 넣을 때 부트 스트랩 datepicker가 작동하지 않습니다.

<head> 
    <script src="../js/jquery.js"></script> 
    <script src="../js/bootstrap.min.js"></script> 
    <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/moment.js/2.0.0/moment.min.js"></script> 
    <link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.2.2/css/bootstrap-combined.min.css" rel="stylesheet"> 
    <link rel="stylesheet" type="text/css" media="screen" href="https://tarruda.github.com/bootstrap-datetimepicker/assets/css/bootstrap-datetimepicker.min.css"> 
     <link href="../css/bootstrap.css" rel="stylesheet"> 
     <script type="text/javascript" src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.2.2/js/bootstrap.min.js"></script> 
     <script type="text/javascript"src="https://tarruda.github.com/bootstrap-datetimepicker/assets/js/bootstrap-datetimepicker.min.js"></script> 
    </head> 
    <div class="btn-group pull-right"> 
        <button type="button" data-toggle="dropdown" class="btn btn-default dropdown-toggle" aria-haspopup="true" aria-expanded="false">Dropdown&nbsp;&nbsp;<span class="glyphicon glyphicon-triangle-bottom"></span></button> 
        <ul class="dropdown-menu"> 
         <li><a href="#"><span class="glyphicon glyphicon-info-sign"></span>&nbsp;&nbsp;About <b>1</b></a></li> 
         <li><a data-toggle="modal" data-target="#optionModal"><span class="glyphicon glyphicon-alert"></span>&nbsp;&nbsp;Report a Bug</a></li> 
         <li><a data-toggle="modal" data-target="#optionModal"><span class="glyphicon glyphicon-text-background"></span>&nbsp;&nbsp;Suggest Enhancement</a></li> 
         <li><a data-toggle="modal" data-target="#optionModal"><span class="glyphicon glyphicon-phone-alt"></span>&nbsp;&nbsp;Contact Us</a></li> 
        </ul> 
      </div> 
    <div class="container"> 
     <div id="questionblock"> 
      <div class= "customscrollbar" id="questiondiv"> 
       <div> 
        <button onclick="addtest();" class="btn btn-primary" style="margin-left:10px; margin-top:7px;"><span class="glyphicon glyphicon-plus"></span>&nbsp;&nbsp;Add New Test</button> 
        <a type="button" class="btn btn-default" style="margin-left:10px; margin-top:7px;"><span class="glyphicon glyphicon-refresh"></span>&nbsp;&nbsp;Refresh</a> 
       </div> 
      </div> 
     </div> 
    </div> 

<div id="displaymasterblock"> 
     <div class="alert alert-info fade in" id="addtestheader"> 
      <span class="glyphicon glyphicon-plus"></span>&nbsp;Add New Test 
     </div> 
     <em>&nbsp;&nbsp;&nbsp;All fields are mandatory</em> 
      <form> 
       <div class="form-inline"> 
        <div id="formelements"> 
         <label>1. Name of Test :</label> 
         <input type="text" class="form-control" id="testname" style="height:30px;" placeholder="Maximum 20 Characters">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
         <label>2. Scheduled on :</label> 
         <div id="datetimepicker" class="input-append date"> 
         <input type="text" style="height:30px;" placeholder="Date & Time of Test"></input> 
         <span class="add-on" style="height:30px;"> 
         <i data-time-icon="icon-time" data-date-icon="icon-calendar"></i> 
         </span> 
          </div> 
         <script type="text/javascript"> //datepicker 
          $("#datetimepicker").datetimepicker({ 
          format: "dd/MM/yyyy hh:mm:ss", 
          todayHighlight: true, 
          pick12HourFormat: true, 
          maskInput: true, 
          }); 
         </script> 
        </div> 
       </div> 
       <div class="alert alert-info fade in" id="addtestheader" style="height:25px;font-size:15px;padding:2px;"> 
        <span class="glyphicon glyphicon-user"></span>&nbsp;Select Target students for test 
       </div> 
       <div class="form-inline"> 
        <div id="formelements"> 

          <div class = "input-group"> 
          <span class = "input-group-addon" style="width:40px;">3. Programme</span> 
          <select id="programme" name="programme" class="form-control" style="width:150px;" onchange="changeinprog();"> 
           <option value="0" selected>Select One</option> 
          </select> 
          <span class = "input-group-addon">4. Branch</span> 
          <select id="branch" name="branch" class="form-control" onchange="changeofbranch();"> 
           <option value="0">Select Programme</option> 
          </select> 
         </div> 
         <div class = "input-group" style="margin-top:10px;"> 
          <span class = "input-group-addon" style="width:40px;">5. Semester</span> 
          <select id="semester" name="semester" class="form-control" style="width:150px;" onchange="changeinsemester();"> 
           <option value="0">Select Programme</option> 
          </select> 
          <span class = "input-group-addon">6. Course</span> 
          <select id="course" name="course" class="form-control" style="width:270px;" > 
           <option value="0">Problem solving and programming skills</option> 
          </select> 
         </div> 
        </div> 
       </div> 
       <center> 
       <div id="errordiv" style="width:400px;"></div> 
       <button type="button" class="btn btn-success">Save</button> 
       <button type="button" class="btn btn-default">Cancel</button> 

        </center> 
       </form> 

<script src="../js/bootstrap.min.js"></script> 

마크 업 및 축소 된 버튼 클릭 트리거 도착하기 JS 함수에서 사용되어왔다. 다음은 JS는 기능 -이다

function addtest() 
{ 
    var element = '<div class="alert alert-info fade in" id="addtestheader"><span class="glyphicon glyphicon-plus"></span>&nbsp;Add New Test</div><em>&nbsp;&nbsp;&nbsp;All fields are mandatory</em><form><div class="form-inline"><div id="formelements"><label>1. Name of Test :</label><input type="text" class="form-control" id="testname" style="height:30px;" placeholder="Maximum 20 Characters">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<label>2. Scheduled on :</label><div id="datetimepicker" class="input-append date"><input type="text" style="height:30px;" placeholder="Date & Time of Test"></input><span class="add-on" style="height:30px;"><i data-time-icon="icon-time" data-date-icon="icon-calendar"></i></span></div><script type="text/javascript">$("#datetimepicker").datetimepicker({format: "dd/MM/yyyy hh:mm:ss",todayHighlight: true,pick12HourFormat: true});</script></div></div><div class="alert alert-info fade in" id="addtestheader" style="height:25px;font-size:15px;padding:2px;"><span class="glyphicon glyphicon-user"></span>&nbsp;Select Target students for test</div><div class="form-inline"><div id="formelements"><div class = "input-group"><span class = "input-group-addon" style="width:40px;">3. Programme</span><select id="programme" name="programme" class="form-control" style="width:150px;" onchange="changeinprog();"><option value="0" selected>Select One</option><option value="1">B.Tech</option><option value="2">M.Tech</option><option value="3">MCA</option><option value="4">M.Sc.</option></select><span class = "input-group-addon">4. Branch</span><select id="branch" name="branch" class="form-control" onchange="changeofbranch();"><option value="0">Select Programme</option></select></div><div class = "input-group" style="margin-top:10px;"><span class = "input-group-addon" style="width:40px;">5. Semester</span><select id="semester" name="semester" class="form-control" style="width:150px;" onchange="changeinsemester();"><option value="0">Select Programme</option></select><span class = "input-group-addon">6. Course</span><select id="course" name="course" class="form-control" style="width:270px;" ><option value="0">Problem solving and programming skills</option></select></div></div></div><center><div id="errordiv" style="width:400px;"></div><button type="button" class="btn btn-success">Save</button><button type="button" class="btn btn-default">Cancel</button></center></form>'; 
    document.getElementById('displaymasterblock').innerHTML = element; 
} 

aabove 기능은 그림과 같이, 즉 달력과 시계 아이콘이 나타나고과 직접 마크 업에 포함 된 경우 완벽하게 작동하고 작동하고 <div id="displaymasterblock"> 날짜 선택기 내부의 모든 마크 업을두고 있습니다 무엇을 그러나 동일한 마크 업을 표시하기 위해 버튼 클릭을 사용할 때 datepicker가 작동을 멈 춥니 다.

여기에서 도와주세요. 외부 리소스 포함 순서에는 문제가 있지만 확실하지는 않습니다. 나는 나 자신을 올바르게 설명하기를 바랍니다. 당신이 동적 HTML 콘텐츠를 추가하는 경우 Datepicker malfunctioning when rendered on page through a button click

답변

2

Datepicker rendering and functioning properly

완전히 스크립트 태그를 제거합니다. 동적 요소가 dom에 추가 된 후 datepicker 함수를 호출합니다. 그래서 아래처럼 기능을 수정하십시오 -

function addtest() { 
     var element = '<div class="alert alert-info fade in" id="addtestheader"><span class="glyphicon glyphicon-plus"></span>&nbsp;Add New Test</div><em>&nbsp;&nbsp;&nbsp;All fields are mandatory</em><form><div class="form-inline"><div id="formelements"><label>1. Name of Test :</label><input type="text" class="form-control" id="testname" style="height:30px;" placeholder="Maximum 20 Characters">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<label>2. Scheduled on :</label><div id="datetimepicker" class="input-append date"><input type="text" style="height:30px;" placeholder="Date & Time of Test"></input><span class="add-on" style="height:30px;"><i data-time-icon="icon-time" data-date-icon="icon-calendar"></i></span></div></div></div><div class="alert alert-info fade in" id="addtestheader" style="height:25px;font-size:15px;padding:2px;"><span class="glyphicon glyphicon-user"></span>&nbsp;Select Target students for test</div><div class="form-inline"><div id="formelements"><div class = "input-group"><span class = "input-group-addon" style="width:40px;">3. Programme</span><select id="programme" name="programme" class="form-control" style="width:150px;" onchange="changeinprog();"><option value="0" selected>Select One</option><option value="1">B.Tech</option><option value="2">M.Tech</option><option value="3">MCA</option><option value="4">M.Sc.</option></select><span class = "input-group-addon">4. Branch</span><select id="branch" name="branch" class="form-control" onchange="changeofbranch();"><option value="0">Select Programme</option></select></div><div class = "input-group" style="margin-top:10px;"><span class = "input-group-addon" style="width:40px;">5. Semester</span><select id="semester" name="semester" class="form-control" style="width:150px;" onchange="changeinsemester();"><option value="0">Select Programme</option></select><span class = "input-group-addon">6. Course</span><select id="course" name="course" class="form-control" style="width:270px;" ><option value="0">Problem solving and programming skills</option></select></div></div></div><center><div id="errordiv" style="width:400px;"></div><button type="button" class="btn btn-success">Save</button><button type="button" class="btn btn-default">Cancel</button></center></form>'; 
     document.getElementById('displaymasterblock').innerHTML = element; 

     $("#datetimepicker").datetimepicker({ 
      format: "dd/MM/yyyy hh:mm:ss", 
      todayHighlight: true, 
      pick12HourFormat: true 
     }); 

    } 
+0

고맙습니다. @Hector .. 더 감사드립니다. 이러한 것들은 디버깅하기가 너무 어렵고 경험이 많은 멘토링 없이는 사람들이 할 수없는 경우가 많습니다. 다시 감사드립니다. :) –

+0

도움이 되니 기뻐요 :) –

+0

이 매우 유용한 기능입니다. 매력으로 작동합니다! 고마워, @HectorBarbossa! – user3030440