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);
}
我正在为记录休假日期做简单的申请。使用此应用程序,我必须 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);
}