IE11 Javascript 更改事件不适用于 html 表单元素

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

我正在为记录休假日期做简单的申请。使用此应用程序,我必须 select 休假的开始日期和结束日期,然后计算这两天之间的所有工作日期。到目前为止,我的代码可以完美地工作 Chrome 和 Firefox。我正在为 select 两个日期使用 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 中工作。

在 calnumofdays 上编辑这些部分,它将起作用...

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);
          }