Javascript 如何使用datepicker从第三个文本框中的文本字段计算天数

Javascript 如何使用datepicker从第三个文本框中的文本字段计算天数,javascript,jquery,jquery-ui,jquery-ui-datepicker,Javascript,Jquery,Jquery Ui,Jquery Ui Datepicker,我有以下代码: <!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> <

我有以下代码:

<!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>

总天数之和
$(函数和(){
DatePickern1=$(“#DatePickern1”).datepicker().value;
DatePickern2=$(“#DatePickern2”).datepicker().value;
document.getElementById('#total').value=parseFloat(datePickern2)-parseFloat(datePickern1)+1;
});
日期1:

日期2:

当我使用datepicker在Date1和Date2中输入日期时,它并没有计算总天数的总和

请帮忙


谢谢

您是否提醒这些值并检查您是否获得了这些值?尚未将日期选择器分配给jquery
日期选择器
。首先要这样做:

$(function() {
  $( "#datepickerln1" ).datepicker();
  $( "#datepickerln2" ).datepicker();
});

并使用
document.getElementById('total').value
而不是
document.getElementById('total').value

首先让我指出代码中的错误,然后是JSFIDLE

(A) 以下是您在代码中犯的一些错误:

1) 首先,将日期选择器初始化为元素

$( "#datepickerln1" ).datepicker();
$( "#datepickerln2" ).datepicker();
2) 您无法获得如下值:
$(“#datepickern1”).datepicker().value

初始化之后,应该是

$( "#datepickerln1" ).val();
$( "#datepickerln2" ).val();
3)
document.getElementById(“#total”).value
,这里不需要
#

就像

document.getElementById('total').value = 'your value';

4) 你不可能像这样轻易地得到日期差

parseFloat(datepickerln2) - parseFloat(datepickerln1) + 1 //WRONG
正确的方法是

Math.floor((datepickerln2.getTime() - datepickerln1.getTime()) / 86400000) //RIGHT WAY

(B) 你需要检查这个关于

在这个线程的帮助下,我更新了你的代码

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

选中此项

jQuery通常使用
val()
而不是
value
。感谢您的回复。我的操作如下:$(函数sum(){datepickern1=$(“#datepickern1”).datepicker().val();datepickern2=$(“#datepickern2”).datepicker().val();document.getElementById('#total').val()=parseFloat(datepickern2)-parseFloat(datepickern1)+;});没有发生和以前一样的事???如果你能帮忙,请再做一件事。。。若总天数是30天,我想计算一下这个月有多少个星期五,4天或5天,减去30天的星期五…?????????????????????????????????usman610检查这个答案,你们会有一个想法。我试过了,但我不能用我的代码来做$(document).ready(function(){var selector=function(dateStr){var d1=$('#datepickern1')。datepicker('getDate');var d2=$('#datepickern2')。datepicker('getdatedate');var diff=0;if(d1&&d2){diff=Math.floor((d2.getTime()-d1.getTime())/86400000)+1;//ms/day}$(“#total”).val(diff)}$(“#datepickern1”).datepicker();$(“#datepickern2').datepicker();$(“#datepickern1,#datepickern2').change(选择器)});
$(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)
});