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

datetimepicker默认值适配问题:新增显当前年,编辑显记录年

解决datetimepicker年份字段新增默认当前年、编辑显示记录年份的问题

问题场景

  • 新增记录时,通过JS设置date: moment().format("YYYY")能正常显示当前年,但编辑已有记录时,字段强制显示当前年而非记录中的年份
  • 移除date属性后,新增时字段为空(仅控件标记当前年),编辑时控件标记记录年份但字段无值

解决方案

核心思路是根据输入框的现有值动态初始化datetimepicker,避免硬编码默认值覆盖编辑场景的记录数据:

  1. 修改JS代码,去掉硬写的date属性,改为判断输入框是否为空后再设置默认值:
// 初始化datetimepicker基础配置
$('#anno').datetimepicker({
    format: 'YYYY',
    locale: 'es',
});

// 新增场景:输入框为空时设置当前年为默认值
if ($('#anno').val().trim() === '') {
    $('#anno').datetimepicker('date', moment().format("YYYY"));
}
  1. 确保Django表单正确渲染记录值
    你的Django表单已正确配置anno字段的TextInput控件,编辑场景下Django会自动将记录中的年份值填充到输入框的value属性中,datetimepicker初始化时会自动读取该值并显示对应年份。

原理说明

  • 原代码中硬设置date属性会强制覆盖输入框的所有现有值,包括编辑时Django渲染的记录年份
  • 改为动态判断输入框值后,仅在新增(输入框为空)时设置当前年,编辑时直接使用输入框已有的记录值初始化datetimepicker,同时保证字段值和控件显示一致

内容的提问来源于stack exchange,提问作者Julio Cesar Sori Gomez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 17:10:10