asp.net-mvc - MVC - 使用文本框获取日期
问题描述
我想在 mvc 中使用文本框或编辑器获取两个日期字符串。格式应该是
"MM/yyyy-MM/yyyy".
我需要强制用户输入上述格式的输入而不发布模型。
@Html.TextBox("tbxDateRange", "", "{0:dd/MM/yyyy}", new { @class = "form-control dropdown", placeholder = "MM/yyyy - MM/yyyy" })
上面的代码不工作事件只得到一个格式化的日期字符串。
解决方案
格式按预期工作。您正在告诉 tbxDateRange 的值(第三个参数 ( "{0:dd/MM/yyyy}"
) 中的零格式化为日/月/年。因此它将接受文本框中的输入并以该格式显示。
它只是一种显示格式。它不会强制执行这种格式。为此,您将需要做自己的客户端 javascript(因为您在没有发布模型的情况下提到过)。您可以查看使用屏蔽的输入元素。ASP.NET MVC 没有开箱即用的屏蔽输入。
您可以使用屏蔽输入控件,例如maskedinput,它是一个 jQuery 插件。
此外,您可能希望将其分解为两个控件。一个用于开始,一个用于结束。您可以考虑使用 html5 输入类型的日期,您将自动获得日历。虽然,如果一个月中的某一天对您的用户/用户界面来说太混乱了,那么您可以查看使用 jquery UI 的日期选择器,您可以将其配置为仅显示月份和年份。
一旦你在你的应用程序中包含了 jQuery UI,你会做一些类似jQuery UI DatePicker 的事情来只显示月份年份。
在该示例中,获胜答案以仅显示控件的月份和年份项目的方式格式化控件。
<script type="text/javascript">
$(function() {
$('.date-picker').datepicker( {
changeMonth: true,
changeYear: true,
showButtonPanel: true,
dateFormat: 'MM yy',
onClose: function(dateText, inst) {
$(this).datepicker('setDate', new Date(inst.selectedYear, inst.selectedMonth, 1));
}
});
});
</script>
<style>
.ui-datepicker-calendar {
display: none;
}
</style>
推荐阅读
- arrays - Powershell 和嵌套 JSON
- java - 如何将带分隔符的文本文件读入数组并将数组元素存储在变量中?
- r - R中的问题编程:eval(predvars,data,env)中的错误:找不到对象“衰退”
- excel - 将 workbookA sheet1 单元格 A1 链接到 workbookB sheet1 单元格 A1
- javascript - Javascript在对象上定义“失败”吸气剂?
- amazon-web-services - 如何在 Grafana 上显示 AWS CodeDeploy 部署
- php - 如何添加像“问题 1 of 10”这样的页面指示器?
- java - 创建通用 API 发布正文请求?
- ios - 在 Swift IOS 中的 webView 顶部添加边距
- canvas - 使用 OGL Flowmap 效果为此 WebGL 设置透明背景?