日期选择器设置所选日期
Datepicker set the selected date
这是我的代码,页面名为Cal.html:
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery UI Datepicker - Default functionality</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/resources/demos/style.css">
<script>
$(function() {
$.datepicker.setDefaults($.datepicker.regional['it']);
$('#datepicker').datepicker({
inline: true,
altField: '#datascelta',
onSelect: function(){
$('#formscelta').submit();
}
});
});
</script>
<div id="datepicker"></div>
<form id="formscelta" action="Cal.html" method="post">
<input type="hidden" name="datascelta" id="datascelta">
</form>
</head>
我想做的是当我在日期选择器中选择日期并且页面被重新加载时,我想将日期选择器中的日期设置为先前选择的日期。这可能吗?
要存储日期并在重新加载页面后获得它,您必须使用cookie,因此您可以使用cookie (js-cookie
或jquery cookie
)或使用localStorage
,参见下面的代码示例:
使用js-cookie:
Cookies.set('datascelta', dataValue); //set datascelta
Cookies.get('datascelta'); //get datascelta
完整代码:
$(function () {
$.datepicker.setDefaults($.datepicker.regional['it']);
$('#datepicker').datepicker({
inline: true,
altField: '#datascelta',
defaultDate: Cookies.get('datascelta') ? Cookies.get('datascelta') : new Date() //get the date after reload and init datepicker
onSelect: function (dataValue) {
Cookies.set('datascelta', dataValue); //store the date in cookies before submiting form
$('#formscelta').submit();
}
});
});
或者你可以使用jquery cookie:
$.cookie('datascelta', dataValue); //set datascelta
$.cookie('datascelta'); //get datascelta
完整代码:
$(function () {
$.datepicker.setDefaults($.datepicker.regional['it']);
$('#datepicker').datepicker({
inline: true,
altField: '#datascelta',
defaultDate: $.cookie('datascelta') ? $.cookie('datascelta') : new Date() //get the date after reload and init datepicker
onSelect: function (dataValue) {
$.cookie('datascelta', dataValue); //store the date in cookies before submiting form
$('#formscelta').submit();
}
});
});
您也可以使用Localstorage
查看本地存储与cookie 。
使用本地存储,代码将如下所示:
localStorage['datascelta'] = dataValue; //set datascelta
localStorage['datascelta']; //get datascelta
完整代码:
$(function () {
$.datepicker.setDefaults($.datepicker.regional['it']);
$('#datepicker').datepicker({
inline: true,
altField: '#datascelta',
defaultDate: localStorage['datascelta'] ? localStorage['datascelta'] : new Date() //get the date after reload and init datepicker
onSelect: function (dataValue) {
localStorage['datascelta'] = dataValue; //store the date in cookies before submiting form
$('#formscelta').submit();
}
});
});
首先需要将日历值设置为隐藏字段,然后才能将值提交给服务器。
$(function () {
$.datepicker.setDefaults($.datepicker.regional['it']);
$('#datepicker').datepicker({
inline: true,
altField: '#datascelta',
onSelect: function (dateText) {
$('#datascelta').val(dateText); //setting hidden field value
$('#formscelta').submit();
}
});
});
如果我理解正确的话,您需要做的是,当我们选择一个日期并重新加载页面时,将其保持为所选日期。
您可以通过将所选日期保存在localStorage
中并在页面重新加载时读取它,并将其设置为所选日期来实现。
在onchange
事件中,您应该将所选日期存储在localStorage
中,
$('#datepicker').datepicker({
inline: true,
altField: '#datascelta',
onSelect: function () {
localStorage.setItem("lastSelectedDate", $(this).val());
$('#formscelta').submit();
}
});
当页面加载时,您应该检查lastSelectedDate
的键的localStorage
项是否存在,如果存在,通过将其强制转换为Date
对象将其设置为该值。
if (localStorage.getItem("lastSelectedDate") != "") {
$('#datepicker').datepicker("setDate",
new Date(localStorage.getItem("lastSelectedDate")));
}
这里是一个工作示例
相关文章:
- 我想以时间戳的形式将日期设置为无限
- Bootstrap DatePicker-将日期设置为明天
- 为什么将新日期设置为今天会返回昨天
- 将 JavaScript 日期设置为静态
- 将日期设置为“”格式;Md、yy”;
- 将“日期”设置为Jquery UI日期选择器输入文本框
- 如何使用日期选择器将默认日期设置为从当前日期起两天
- 如何使用javascript将验证日期设置为不小于文本框中的开始日期
- 正在将日期范围选取器的开始日期设置为空
- Javascript:将新日期设置为明天上午8点
- 引导日期选择器将日期设置为1970年之前
- 如何将小时 javascript 日期设置为大于 23 并使用 .getHours() 函数检索它们
- 如何将日期设置为 72 小时后过期
- 在引导日期选取器中将日期设置为初始为空
- 如何在引导日期设置每月的第一个日期和最后一个日期
- 如何使用另一个日期输入字段将日期设置为输入字段
- 无法将昨天的日期设置为剑道UI日期选择器
- 根据特定日期设置数组
- 将“当前日期”设置为在引导日期选取器中选中
- 在 session.createDateTime 中将日期设置为特定的 d/t 和时区