javascript - Bootstrap Datepicker 仅年份不绑定
问题描述
在我的 MVC 项目Datetime
中,我的模型中有一个可以为空的属性,名为ReplacementDate
.
在我看来,我有一个使用以下代码初始化的 Bootstrap 日期选择器(2.0 版):
$('.input-group.decade').datepicker({
format: "yyyy",
viewMode: "years",
minViewMode: "years",
keyboardNavigation: false,
forceParse: false,
autoclose: true,
showOnFocus: false
});
日期选择器在屏幕上正确呈现,我只能从日历中选择一个年份值。但是当我发布表单数据时,该ReplacementDate
属性没有值。我尝试将格式设置为“yyyy”和“yyyy”甚至“YYYY”,但似乎没有任何东西允许绑定发生。
奇怪的是,我在同一页面上有另一个日期选择器,它允许用户选择月份和年份,并且它在提交到不同的可空日期属性时正确绑定。代码如下:
$('.input-group.month').datepicker({
format: "mm/yyyy",
viewMode: "months",
minViewMode: "months",
keyboardNavigation: false,
forceParse: false,
autoclose: true,
showOnFocus: false
});
我做错了什么来阻止ReplacementDate
值正确绑定?我是否必须制作ReplacementDate
一个可为空的 int 或其他东西?
解决方案
我建议这样做:
$('#date1').datepicker({
changeMonth: true,
changeYear: true,
showButtonPanel: true,
dateFormat: 'yy',
onClose: function(dateText, inst) {
var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
$(this).datepicker('setDate', new Date(year));
console.log($("#ui-datepicker-div .ui-datepicker-year :selected").val())
}
});
#ui-datepicker-div {
font-size: 12px;
}
.ui-datepicker-calendar {
display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/themes/vader/jquery-ui.min.css" />
<input type="text" id="date1" name="date1" />
推荐阅读
- mysql - MySQL 服务器 8.0.15 中的“写入配置文件失败”
- c - 在 for 循环中减少的更清洁的解决方案
- node.js - NodeJS - express + mongoose + BAL 单连接
- android - 将 google play/apple store 自动续订订阅与内部帐户同步的预期行为是什么?
- python - Matplotlib:将折线图简化为特定性别
- python - 从列表中提取确切的值
- ruby-on-rails-4 - Heroku 在 Rails 4 应用程序中调用 Resque.enqueue 时连接到 Redis localhost
- docker - Docker - 在 Alpine 发行版上安装 Alpine 存储库中不可用的软件包
- java - 这段代码中的二叉搜索树会是什么样子?
- sql-server - SQL连接具有相同外键的三个表不组合表2和3数据