HTML исчезает, выберите дату и установите текущую дату

#javascript #html

#javascript #HTML

Вопрос:

Я скопировал этот код для практики:

 <!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
    function GetDays(){
            var dropdt = new 
Date(document.getElementById("drop_date").value);
            var pickdt = new 
Date(document.getElementById("pick_date").value);
            return parseInt((dropdt - pickdt) / (24 * 3600 * 1000));
    }

    function cal(){
    if(document.getElementById("drop_date")){
        document.getElementById("numdays2").value=GetDays();
    }  
}

 </script>
</head>
<body>
<div id="reserve_form">

<div id="pickup_date"><p><label class="form">Pickup Date:</label><input 
type="date" class="textbox" id="pick_date" name="pickup_date" 
onchange="cal()"</p></div>

<div id="dropoff_date"><p><label class="form">Dropoff Date:</label><input 
type="date" class="textbox" id="drop_date" name="dropoff_date" 
onchange="cal()"/></p></div>

 <div id="numdays"><label class="form">Number of days:</label><input 
type="text" class="textbox" id="numdays2" name="numdays"/></div>

</div>
</body>
  

Как бы я закрыл pickup date поле и установил текущую дату? и это нельзя настроить. А также выделите серым цветом number of days : так что это также нельзя настроить, но все еще функционально для возврата результата.

Ответ №1:

Сначала вы должны отключить дату получения элемента ввода с помощью disabled .

 <input type="date" class="textbox" id="pick_date" name="pickup_date" disabled />
  

Затем получите текущую дату и назначьте ее pick_date

 document.getElementById("pick_date").value = new Date().toISOString().slice(0,10);
  

Чтобы вычислить разницу в датах, вы должны сначала увидеть различия между их временными метками unix. И вы получаете это с помощью getTime()

 function GetDays(){
            var dropdt = new 
Date(document.getElementById("drop_date").value).getTime();
            var pickdt = new 
Date(document.getElementById("pick_date").value).getTime();

            return parseInt((dropdt- pickdt) / (24 * 3600 * 1000));

}
  

https://jsfiddle.net/ktr7z024/2/

Комментарии:

1. Привет, эта ссылка на скрипку, как бы мне объединить их вместе? скрипт html и js? Спасибо

2. Поместите часть js в свой тег script. И html-часть под тегом body.