uni-app iOS nvue界面 input 使用disabled后 事件不能向上传递

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

uni-app iOS nvue界面 input 使用disabled后 事件不能向上传递

项目信息 详情
产品分类 uniapp/App
PC开发环境操作系统 Mac
PC开发环境操作系统版本号 13.3.1
HBuilderX类型 正式
HBuilderX版本号 3.8.12
手机系统 iOS
手机系统版本号 iOS 15
手机厂商 苹果
手机机型 7p
页面类型 nvue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

示例代码:

<view @click='click>
<input  disabled></input>
</view>  

click事件无效

操作步骤:

必现

预期结果:

input禁用时候 nvue可以事件冒泡

实际结果:

无效

bug描述:

input 在iOS nvue界面 使用disabled后 事件不能向上传递


2 回复

搞错了 是安卓平台不行 ios可以


uni-appnvue 页面中,input 组件使用 disabled 属性后,确实可能会导致事件无法向上传递。这是因为 disabled 属性会禁用输入框的交互,包括点击、触摸等事件。

解决方案

  1. 使用 readonly 替代 disabled
    如果你只是希望用户不能修改输入框的内容,但仍然希望保留事件的传递,可以使用 readonly 属性代替 disabled

    <input type="text" readonly />

    readonly 属性会阻止用户修改输入框的内容,但不会阻止事件的传递。

  2. 手动处理事件
    如果你必须使用 disabled,并且需要处理事件,可以在父元素上监听事件,然后手动处理。

    <view [@tap](/user/tap)="handleTap">
      <input type="text" disabled />
    </view>
    export default {
      methods: {
        handleTap() {
          // 处理点击事件
          console.log('Input was clicked');
        }
      }
    }
  3. 使用 pointer-events 样式
    你可以通过 CSS 的 pointer-events 属性来控制元素的点击事件是否生效。将 pointer-events 设置为 none 可以禁用元素的点击事件,但仍然保留事件传递。

    <input type="text" disabled style="pointer-events: none;" />
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!