javascript点击功能不起作用

时间:2017-01-14 11:36:58

标签: jquery asp.net jquery-ui datepicker pickadate

Jscript code part1

part2

当我尝试计算两个日期选择器值之间的差异时,单击功能不起作用。但当我尝试做一些简单的事情时: document.getElementById(“price”)。innerHTML =“safas”;它工作..我无法弄明白,我使用的代码也在空白页面中工作。

$(document).ready(function(){
  var $datepicker1 =  $( "#datepicker1" );
  var $datepicker2 =  $( "#datepicker2" );
  $datepicker1.datepicker();
  $datepicker2.datepicker({
     onClose: function() {
        var fromDate = $datepicker1.datepicker('getDate');
        var toDate = $datepicker2.datepicker('getDate');
        // date difference in millisec
        var diff = new Date(toDate - fromDate);
        // date difference in days
        var days = diff/1000/60/60/24;

        document.getElementById("Label1").innerHTML = days;
    }
 });
});

所以我尝试了建议的解决方案并对其进行了一些研究,最终我无法处理它。

1 个答案:

答案 0 :(得分:0)

我建议写一个小函数来帮助解决这个问题:

function dateDifference(start, end) {
  var d1 = new Date(start);
  var d2 = new Date(end);
  return Math.round(Math.abs((d2 - d1) / 86400000));
}

这个函数,给定两个日期的字符串格式,如mm/dd/yy或01/21/2017,它将返回两个日期之间的天数。

这里有一个更接近您的代码的示例:https://jsfiddle.net/Twisty/g0ujgbdo/

<强> HTML

<label for="datepicker1">From</label>
<input type="text" id="datepicker1" name="from">
<label for="datepicker2">to</label>
<input type="text" id="datepicker2" name="to">
<p id="results"></p>

<强>的JavaScript

$(function() {
  var dF = "mm/dd/yy",
    from = $("#datepicker1")
    .datepicker()
    .on("change", function() {
      to.datepicker("option", "minDate", gD($(this)));
      if (from.datepicker("getDate") !== null && to.datepicker("getDate") !== null) {
        $("#results").html("You selected " + dateDifference(from.datepicker("getDate"), to.datepicker("getDate")) + " days.");
      }
    }),
    to = $("#datepicker2").datepicker()
    .on("change", function() {
      from.datepicker("option", "maxDate", gD($(this)));
      if (from.datepicker("getDate") !== null && to.datepicker("getDate") !== null) {
        $("#results").html("You selected " + dateDifference(from.datepicker("getDate"), to.datepicker("getDate")) + " days.");
      }
    });

  function gD($el) {
    return $.datepicker.parseDate(dF, $el.val()) || null;
  }

  function dateDifference(start, end) {
    var d1 = new Date(start);
    var d2 = new Date(end);
    return Math.round(Math.abs((d2 - d1) / 86400000));
  }
});