javascript - 具有日期范围的引导日期选择器未将值保存为指定格式
问题描述
我有一个需要两个日期的预订表格,所以我使用 Bootstrap datepicker 具有的内置选项(它包括在包含输入的父元素上调用 datepicker 函数)来显示选择的日期范围,这是我的HTML:
<div class="grupo vip-fechas input-daterange">
<div class="barra verde"> <span>¿Cuándo llegas?</span></div>
<input type="text" class="input calendario" id="entrada_input" name="entrada_input" placeholder="Selecciona una fecha">
<input type="hidden" id="fecha_inicio" name="fecha_inicio">
<div class="barra verde"> <span>¿Cuándo te vas?</span></div>
<input type="text" class="input calendario" id="salida_input" name="salida_input" placeholder="Selecciona una fecha">
<input type="hidden" id="fecha_fin" name="fecha_fin">
</div>
这是我的 Javascript 代码:
$(document).ready(function(){
iniciarFechas();
});
function iniciarFechas(){
var date = new Date();
var today = new Date(date.getFullYear(), date.getMonth(), date.getDate());
var date_hidden;
$('.vip-fechas.input-daterange').datepicker({
weekStart: 1,
maxViewMode: 1,
language: "es",
startDate: today,
disableTouchKeyboard: true,
format: {
toDisplay: function(date, format, language) {
var fecha = moment(date).add(1,"day");
date_hidden = fecha;
return fecha.format("dddd DD [de] MMMM, YYYY");
},
toValue: function(date, format, language) {
var fecha = moment(date).add(1,"day");
return moment(fecha).format("DD/MM/YY");
//return moment(date, ["DD.MM.YYYY", "DDMMYYYY"]).toDate();
}
},
}).on("changeDate", function(e){
var fecha_formateada = moment(date_hidden).format("DD/MM/YY");
$(this).next().val(fecha_formateada);
});
}
日期范围正常工作,但我想将格式化日期存储在隐藏输入中,如您所见,我想要的格式是这样的:...format("DD/MM/YY");
但我得到的是显示格式:format("dddd DD [de] MMMM, YYYY")
,我还注意到$(this)
这一行中的值:$(this).next().val(fecha_formateada);
指到容器 div,而不是改变值的输入,那么如何在隐藏输入中保存我想要的日期?
解决方案
我不确定您的问题是什么,但是通过查看您的代码,我只能猜测您可能处于竞争状态。
您在 Datepicker.toDisplay 中设置 date_hidden 变量,然后在 changeDate 自定义事件中读取它。
将调试器或控制台日志放入两个回调中,以确保您没有处于竞争状态的中间。
至于在输入字段中设置格式化值,我可以在您的 HTML 代码中看到您有可以使用的选择器,例如隐藏字段的 ID。
我建议的另一件事是,不要在这些不同的回调中设置和读取 date_hidden 字段,只需调用$('#elementID').datepicker('getDate')
changeDate 事件处理程序并在那里进行所有您需要的转换,然后提取该代码并将其放入单独的函数中。
推荐阅读
- java - Java servlet doPost 方法不起作用
- python - pandas 数据帧的平等性,除了 dtypes
- r - 检查向量的元素是否在矩阵给定的区间内
- maven - Jfrog Artifactory:如何删除旧的快照工件
- javascript - 如何仅在用户端重置本地存储一次?
- c# - 在属性中定义 LAMBDA 查询,以便可以重复使用
- python - 以编程方式阻止特定文件(.txt 扩展名)的打印请求?
- reactjs - 无法在未安装的组件上调用 setState
- android - 一种包装 LinearLayout 的方法
- python - 随机删除 numpy 数组中 30% 的值