我有以下代码:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Sum Of Total Days</title>
<link rel="stylesheet" href="jquery-ui.css" />
<script src="jquery-1.9.1.js"></script>
<script src="jquery-ui.js"></script>
<script>
$(function sum() {
datepickerln1 = $( "#datepickerln1" ).datepicker().value;
datepickerln2 = $( "#datepickerln2" ).datepicker().value;
document.getElementById('#total').value = parseFloat(datepickerln2) - parseFloat(datepickerln1) +1;
});
</script>
</head>
<body>
<p>Date 1: <input name="datepickerln1" id="datepickerln1" type="text" onblur="sum()"/></p>
<p>Date 2: <input name="datepickerln2" id="datepickerln2" type="text" onblur="sum()"/></p>
<input name="total" id ="total" type="text" readonly />
</body>
</html>
在日期1&amp;中我使用datepicker放置日期的时间总和不是。日期2。
请帮忙
感谢
答案 0 :(得分:2)
首先让我指出代码中的错误以及后来的JSFiddle。
(A)以下是您在代码中犯下的错误:
1)首先将datepicker初始化到您的元素。
$( "#datepickerln1" ).datepicker();
$( "#datepickerln2" ).datepicker();
2)您无法获得此$( "#datepickerln1" ).datepicker().value;
初始化后,它应该像
$( "#datepickerln1" ).val();
$( "#datepickerln2" ).val();
3)document.getElementById('#total').value
,此处不需要#
。
就像
一样document.getElementById('total').value = 'your value';
或
$('#total').val('your value');
4)您无法像
那样轻松获得 dateDifferenceparseFloat(datepickerln2) - parseFloat(datepickerln1) + 1 //WRONG
正确的方法是
Math.floor((datepickerln2.getTime() - datepickerln1.getTime()) / 86400000) //RIGHT WAY
(B)你需要查看关于dateDifference in datepicker
的这个帖子在这个帖子的帮助下,我更新了你的代码
$(document).ready(function () {
var selector = function (dateStr) {
var d1 = $('#datepickerln1').datepicker('getDate');
var d2 = $('#datepickerln2').datepicker('getDate');
var diff = 0;
if (d1 && d2) {
diff = Math.floor((d2.getTime() - d1.getTime()) / 86400000); // ms per day
}
$('#total').val(diff);
}
$("#datepickerln1").datepicker();
$('#datepickerln2').datepicker();
$('#datepickerln1,#datepickerln2').change(selector)
});
选中此JSFiddle
答案 1 :(得分:0)
您是否提醒值并检查您是否获得了值?日期选择器尚未分配给jquery datepicker
。首先这样做:
$(function() {
$( "#datepickerln1" ).datepicker();
$( "#datepickerln2" ).datepicker();
});
并使用document.getElementById('total').value
代替document.getElementById('#total').value