uni-app日期点击无反应

发布于 1周前 作者 sinazl 来自 Uni-App

uni-app日期点击无反应

开发环境 版本号 项目创建方式
Windows 120.0.6099.217 HBuilderX

操作步骤:

谷歌更新到最新版,访问链接https://hellouniapp.dcloud.net.cn/pages/extUI/datetime-picker/datetime-picker,选择日期不出模态框

预期结果:

点击选择日期

实际结果:

选择日期不显示模态框

bug描述:

  1. uni-datetime-picker日期选择框点不出来,在uniapp官方演示版本点击也无反应,浏览器版本是120.0.6099.217。
  2. 若u-input 设置了disabled 点击事件也无反应,chooseUser不触发
<u-input type="text" v-model="map.workManager" [@click](/user/click)="chooseUser" placeholder="请选择工作负责人" disabled></u-input>

7 回复

官网的事例uni-datetime-picker可以点出来,<u-input /> 这个组件 加了 disabled 应该是点不动的,取消掉


uni-datetime-picker我使用谷歌浏览器最新版点击并无问题,重新安装goole浏览器试试看 input禁用之后设计就是不会触发click事件的

你提供的 hello uniapp 我每个点击了,chrome 版本 120.0.6099.216(正式版本) (arm64) 只有最后一个 disabled 不能点开。
你是说最后一个 disabled 应该要点开吗?

我在谷歌浏览器(120.0.6099.218)上只有点击图标才能弹出日期框,其他的位置点击没反应。(见附件) 用微信访问官网提供的web版本,会有同样的问题。用手机自带浏览器(华为p20 pro)访问,日期控件点击没问题。

更新了一下版本,现在重新尝试一下,应该不会出现该问题了

怎么解决的?

在使用 uni-app 开发时,如果遇到日期点击无反应的问题,可能有多种原因导致。以下是一些常见的排查步骤和解决方案:


1. 检查事件绑定

确保日期点击事件已经正确绑定到组件或元素上。例如:

<template>
  <view @click="handleDateClick">
    {{ selectedDate }}
  </view>
</template>

<script>
export default {
  data() {
    return {
      selectedDate: '选择日期'
    };
  },
  methods: {
    handleDateClick() {
      console.log('日期被点击了');
      // 处理日期选择的逻辑
    }
  }
};
</script>

注意:确保 @click 事件绑定正确,且方法名没有拼写错误。


2. 检查样式问题

如果日期点击区域被其他元素遮挡,可能会导致点击无反应。可以通过以下方式检查:

  • 使用浏览器的开发者工具(F12)检查元素布局,确保点击区域没有被其他元素覆盖。
  • 尝试给点击区域添加背景色或边框,确认点击区域是否正确。
view {
  background-color: #f0f0f0;
  padding: 10px;
  border: 1px solid #ccc;
}

3. 使用 uni-calendar 组件

如果日期选择逻辑复杂,可以直接使用 uni-calendar 组件,它是 uni-app 官方提供的日期选择器。

<template>
  <view>
    <uni-calendar @change="handleDateChange" />
  </view>
</template>

<script>
export default {
  methods: {
    handleDateChange(e) {
      console.log('选择的日期:', e.fulldate);
    }
  }
};
</script>

注意:确保已安装并导入 uni-calendar 组件。


4. 检查事件冒泡

如果父元素或子元素绑定了事件,可能会导致事件冒泡问题。可以尝试使用 .stop 修饰符阻止事件冒泡。

<view @click.stop="handleDateClick">
  点击选择日期
</view>

5. 调试代码

如果以上方法无效,可以在 handleDateClick 方法中添加调试信息,检查方法是否被触发。

methods: {
  handleDateClick() {
    console.log('点击事件触发');
  }
}

6. 检查平台兼容性

部分平台(如小程序)可能对点击事件的支持有限。可以尝试在不同平台(H5、小程序、App)中测试,确认问题是否与平台相关。


7. 更新 uni-app 版本

如果使用的是旧版本的 uni-app,可能存在一些已知问题。尝试更新到最新版本:

npm install @dcloudio/uni-app

8. 使用原生日期选择器

如果问题仍然存在,可以考虑使用原生日期选择器,例如 picker 组件。

<template>
  <view>
    <picker mode="date" @change="handleDateChange">
      <view>选择日期</view>
    </picker>
  </view>
</template>

<script>
export default {
  methods: {
    handleDateChange(e) {
      console.log('选择的日期:', e.detail.value);
    }
  }
};
</script>
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!