javascript - jQuery UI Datepicker - 返回日期、到达和离开
问题描述
我正在尝试制作一个预订网站(到达、离开),我可以使用 jQuery UI DatePicker 选择 2 个日期(一个用于到达,一个用于离开)。一旦我选择了第二个日期(离境),我希望程序计算到达和离境之间有多少天,并将其乘以 *50。一旦我得到那个数字,我想把它放在我的文本形式(价格)中。
所以,如果我给你一个例子。我会选择“25.05.2021”作为我的到来和“28.03.2021”作为离开。所以它会返回数字“3”。然后我会乘以 3*50,所以我会得到“150”并将“150”放在“价格”表格中。
$(function() {
$("#datepicker").datepicker();
});
$(function() {
$("#datepicker1").datepicker();
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<p>Date 1: <input type="text" id="datepicker"></p>
<p>Date 2: <input type="text" id="datepicker1"></p>
<p>Price: <input type="text" id="vrniceno" disabled></p>
解决方案
您可以使用onSelect
Datepicker 对象上的回调事件来更新总价。
此外,只需将 egdatepicker
类添加到要转换为 jQuery Datepicker 对象的所有日期输入字段。
const DAY_IN_MILLIS = 1000 * 60 * 60 * 24;
const updateTotal = function() {
const form = document.forms['booking'];
const goingRate = form.elements['going-rate'].valueAsNumber; // No parsing needed
const arrivalDate = $(form.elements['arrival-date']).datepicker('getDate');
const departureDate = $(form.elements['departure-date']).datepicker('getDate');
if (arrivalDate && departureDate) {
const days = Math.ceil((departureDate - arrivalDate) / DAY_IN_MILLIS);
const total = goingRate * days;
$(form.elements.total).val(total.toFixed(2));
}
}
$('.datepicker').datepicker({
minDate: new Date(),
onSelect: function(date, datepicker) {
updateTotal();
}
});
form {
display: grid;
grid-template-columns: 8em 1fr;
grid-row-gap: 0.25em;
}
label {
font-weight: bold;
}
label::after {
content: ':';
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<h1>Hotel Booking</h1>
<form name="booking">
<label>Arrival Date</label>
<input type="text" name="arrival-date" class="datepicker">
<label>Departure Date</label>
<input type="text" name="departure-date" class="datepicker">
<label>Going Rate ($)</label>
<input type="number" name="going-rate" value="50.00" step="0.01">
<label>Total ($)</label>
<input type="number" name="total" step="0.01" disabled>
</form>
推荐阅读
- django - pdfkit:包含水印的标题不重复
- c - 为什么 for 循环中的 printf 有人可以解释我吗?
- c# - 以编程方式设置 ListBox 以滚动到所选项目
- python - 未找到 在服务器上未找到请求的 URL。如果您输入了 URL... Flask 重定向不起作用
- office-js - 安装使用 yo 生成器创建的 Office Outlook 加载项时出错
- sql - 应该工作的代码中的语法错误
- javascript - 如何检测文本区域中的 URL 并对其进行验证?
- c# - 防止在 UWP 中双击按钮
- scalardb - PutIfNotExists 不会在 ScalarDB 中的重复项上引发错误
- fortran - 编译 Fortran 代码时对“__guia1_ej14_MOD_crea”的未定义引用