【发布时间】:2016-12-25 11:48:55
【问题描述】:
我正在为记录我办公室的内部休假做一个简单的申请。使用此应用程序,我必须为用户提供两个 HTML 日期字段,用于选择开始休假日期和结束休假日期。同时我需要计算用户选择之间有多少天,这个计数可能不包括工作日。为此,我尝试使用带有日期字段 onchange 事件之一的简单 javascript,但它不起作用
这是我尝试过的完整的 HTML 代码
<html >
<head>
</head>
<body>
<form action='reqprocess.php' method='post'>
<td><input type="date" name="datepicker" class='form-control' id="startd" required/> <br>
<td><input type="date" name="datepicker2" class='form-control' id="endd"required /> <br>
<td><input type="text" name='leavehmd' class='form-control' id="lhmd"/><br>
<input type='submit' value='Apply' class='btn btn-primary' />
</form>
<script type="text/javascript">
var chng1 = document.getElementById("endd");
chng1.onchange = function () {
var date1 = Date.parse(document.getElementById("startd").value);
var date2 = Date.parse(document.getElementById("endd").value);
if (date1 && date2) {
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));
//alert(diffDays);
document.getElementById("lhmd").value = diffDays;
}
}
var chng2 = document.getElementById("startd")
chng2.onchange = function () {
var date1 = Date.parse(document.getElementById("startd").value);
var date2 = Date.parse(document.getElementById("endd").value);
if (date1 && date2) {
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));
//alert(diffDays);
document.getElementById("lhmd").value = diffDays;
}
}
</script>
</body>
</html>
但是当第二个日期时,更改功能不起作用,并且输入字段假设填充未填充的计数日期。我该如何解决这个问题?
或者我如何通过 ajax 或 jquery 等方法实现这一目标
【问题讨论】:
-
请同时发布第二个输入的on change功能
-
^ 以及您希望日期采用什么格式?
-
对不起,我只为第二个输入字段编写更改事件。因为要输入结束日期,用户必须填写开始日期,我错过了什么吗?
-
格式为 mm/dd/yyyy
标签: javascript jquery ajax html html-input