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

如何阻止带条件判断的Bootstrap日期选择器在编辑时消失?

解决方案

你需要引入额外的状态变量来跟踪日期选择器的显示状态,避免因清空日期导致控件直接消失。以下是两种可行的实现方式:

方式一:基于初始预填状态控制显示

只要页面加载时存在预填日期,就始终保持日期选择器可见,允许用户清空后重新输入:

  1. 在组件的data中添加状态变量showDatePicker,初始值由预填日期是否存在决定:
data() {
  return {
    preEnteredDate: null, // 从数据库获取的初始日期值
    showDatePicker: false
  };
},
mounted() {
  // 假设此处从后端加载预填日期到preEnteredDate
  // 初始化显示状态:有预填则显示,否则隐藏
  this.showDatePicker = !!this.preEnteredDate;
}
  1. 修改模板中的v-if条件,绑定到新的状态变量:
<b-form-row>
  <b-col lg="6">
    <b-form-group v-if="showDatePicker">
      <b-date-picker
        v-model="preEnteredDate"
      />
    </b-form-group>
  </b-col>
</b-form-row>

方式二:基于用户交互状态控制显示

初始时仅当有预填日期才显示;一旦用户点击日期选择器开始交互,就保持控件可见:

  1. 添加交互状态变量hasInteracted:
data() {
  return {
    preEnteredDate: null,
    hasInteracted: false
  };
}
  1. 给日期选择器添加焦点事件,标记用户已交互:
<b-form-row>
  <b-col lg="6">
    <b-form-group v-if="preEnteredDate || hasInteracted">
      <b-date-picker
        v-model="preEnteredDate"
        @focus="hasInteracted = true"
      />
    </b-form-group>
  </b-col>
</b-form-row>

说明

  • 方式一适合:只要有过预填日期,就始终让用户能修改日期(包括清空后重新输入)。
  • 方式二适合:仅当有预填或用户主动触发编辑时,才显示控件,避免无意义的空白控件展示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 12:05:33