IE11 Javascript更改事件不与html表单元素工作

IE11 Javascript on-change event not working with html form element

本文关键字:html 表单 元素 工作 Javascript 事件 IE11      更新时间:2023-09-26

我正在申请记录休假日期。使用此应用程序,我必须选择休假的开始日期和结束日期,然后计算这两天之间的所有业务日期。到目前为止,我的代码工作Chrome和Firefox完美。我使用jQuery UI日期选择器选择两个日期,并使用第二个日期选择器更改事件计数日期,并显示在html输入框内。

在IE中,此功能被打破,并且在我使用日期时间选择器更改事件不触发设置两个日期后

这是我的代码示例:

<script type="text/javascript">
              $( function() {
                $( "#startd" ).datepicker({beforeShowDay: $.datepicker.noWeekends , dateFormat: 'yy-mm-dd'});
              } );
            
              $( function() {
                $( "#endd" ).datepicker({beforeShowDay: $.datepicker.noWeekends , dateFormat: 'yy-mm-dd' });
              } );
 function getBusinessDatesCount(startDate, endDate) {
    var count = 0;
    var curDate = startDate;
    while (curDate <= endDate) {
        var dayOfWeek = curDate.getDay();
        if(!((dayOfWeek == 6) || (dayOfWeek == 0)))
           count++;
        curDate.setDate(curDate.getDate() + 1);
    }
    return count;
}
            </script>
            
    
            <form action='reqprocess.php' method='post'>
                <table class='table table-hover table-responsive table-bordered'>
            <tr>
                        <td id="td2">Start</td>
                        <td><input type="text" name="datepicker" class='form-control' id="startd" required onchange="calnumofdays()" /></td>
                    </tr>
                      <tr>
                        <td id="td1">End</td>
                        <td><input type="text" name="datepicker2" class='form-control' id="endd" onchange="calnumofdays()" /></td>
                    </tr>
                     <tr>
                        <td>Days</td>
                        <td><input type="number" name='leavehmd' class='form-control' id="lhmd"/></td>
                    </tr>
                </table>
            </form>
            
    <script type="text/javascript">
    
            function calnumofdays() {           
           
            var startDate = $(startd).datepicker("getDate");
            var endDate = $(endd).datepicker("getDate");
        
            var numOfDates = getBusinessDatesCount(startDate, endDate);
            $('#lhmd').val(numOfDates);
            //alert(numOfDates);
            $('div#result').text(numOfDates);
          }
        </script>

我该如何解决这个问题?这段代码在chrome和firfox中工作得很好。当我在html中删除表单标签时,它也开始在IE中工作。

在日历上编辑这些部分,它将工作…

function calnumofdays() {           
            var startDate = $("#startd").datepicker("getDate"); //edit these
            var endDate = $("#endd").datepicker("getDate"); //edit these
            var numOfDates = getBusinessDatesCount(startDate, endDate);
            $('#lhmd').val(numOfDates);
            //alert(numOfDates);
            $('div#result').text(numOfDates);
          }