2017-01-14 3 views
1

Jscript code part1Javascript функция клик не работает

part2

Когда я пытаюсь вычислить разницу между значениями двух выбора даты в функции нажмите не работает. Но когда я пытаюсь сделать что-то простое: document.getElementById («цена»). 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; 
    } 
}); 
}); 

Таким образом, я попробовал предлагаемые решения и провел некоторые исследования по нему, в конце концов, я не мог справиться с этим.

+0

Где полный код, включая HTML. Не указывайте текст без изображения. –

+0

@RafiqueAhmed Спасибо за ваш ответ. здесь jsfiddle https://jsfiddle.net/txxt1b7u/#&togetherjs=g7axFdc3gb – newbiex1

+0

Для записи pickadate() не является частью ** jquery.ui **. Видимо, ваш код в Fiddler пытается использовать эту библиотеку: ** amsul.js **, который не загружается: http://amsul.ca/pickadate.js/date/ – derloopkat

ответ

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