You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.Net中如何实现仅选择年月的Bootstrap日期选择器?

在.NET项目中实现Bootstrap Datepicker仅选择年月的问题

我在.NET项目中尝试实现仅允许用户选择年月的日期选择功能,虽然引入了Bootstrap Datepicker,但未能达到预期效果——当前日期选择器仍支持选择日、月、年。以下是我的代码,请问遗漏了哪一步?

JavaScript代码

$(document).ready(function () {
$("#datepicker").datepicker(
    {
        changeMonth: true,
        changeYear: true,
        format: "mm/yyyy",
        language: "tr"
    });
});

HTML及Razor代码

<form method="post" asp-action="Create">
<div class="container">
    <div class="row p-2">
        <h2 class="text-primary row-6">Create a Period</h2>
    </div>

    @*<div asp-validation-summary="All" class="text-danger"></div>*@
    <div class="my-3">
        <label asp-for="Period"></label>
        <input asp-for="Period" class="form-control" />
    </div>
    <div class="my-3">
        <label asp-for="PardiemType"></label>
        <input asp-for="PardiemType" class="form-control" id="datepicker" />
    </div>

    <button type="submit" class="btn btn-primary">Create</button>
    <a asp-controller="UserPeriod" asp-action="Index" class="btn btn-secondary">Back to List</a>
</div>
@section Scripts{
@{
    <partial name="_ValidationScriptsPartial" />
    <script src="~/js/period.js"></script>
}
}

当前效果:
日期选择器效果


解决方案

你需要添加控制视图层级的配置项,Bootstrap Datepicker默认显示日视图,必须通过参数限制只能选择年月:

1. 修改JavaScript配置

添加viewMode和minViewMode参数,确保选择器停留在年月层级:

$(document).ready(function () {
    $("#datepicker").datepicker({
        changeMonth: true,
        changeYear: true,
        format: "mm/yyyy",
        language: "tr",
        viewMode: "months", // 初始显示年月视图
        minViewMode: "months" // 限制用户无法切换到日视图
    });
});

如果使用的是旧版Bootstrap Datepicker(比如v1.x),可能需要用startView替代viewMode,参数值为1(1代表月份视图,0为日视图,2为年视图):

$(document).ready(function () {
    $("#datepicker").datepicker({
        changeMonth: true,
        changeYear: true,
        format: "mm/yyyy",
        language: "tr",
        startView: 1,
        minViewMode: 1
    });
});

2. 避免原生日期选择器冲突

检查输入框的type属性,如果是date类型会触发浏览器原生日期选择器,建议改为text类型:

<input asp-for="PardiemType" class="form-control" id="datepicker" type="text" />

内容的提问来源于stack exchange,提问作者omneer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 14:32:01