uni-app 安卓14 input设置为disabled后 @tap方法失效
uni-app 安卓14 input设置为disabled后 @tap方法失效
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | win10 | HBuilderX |
示例代码:
<input class="input-text" v-model="visitType" placeholder="请选择" disabled [@tap](/user/tap)="show8 = true" />
操作步骤:
<input class="input-text" v-model="visitType" placeholder="请选择" disabled [@tap](/user/tap)="show8 = true" />
预期结果:
<input class="input-text" v-model="visitType" placeholder="请选择" disabled [@tap](/user/tap)="show8 = true" />
实际结果:
<input class="input-text" v-model="visitType" placeholder="请选择" disabled [@tap](/user/tap)="show8 = true" />
bug描述:
<input class="input-text" v-model="visitType" placeholder="请选择" disabled [@tap](/user/tap)="show8 = true" />
系统为安卓14后 input设置为disabled 点击的[@tap](/user/tap)方法失效 , 之前版本的安卓可以点击
更多关于uni-app 安卓14 input设置为disabled后 @tap方法失效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
给input中加一个css属性pointer-events: none
试试 我h5中遇到的这个问题都是这样解决的
或者降低input层级 给父级增加tap事件
<view @tap=“tapInput”>
<input style="position: relative;z-index: -1;"disabled type=“text” placeholder=“请选择”>
</view>
更多关于uni-app 安卓14 input设置为disabled后 @tap方法失效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在 uni-app 中,当你在安卓14上将 input 元素设置为 disabled 后,[@tap](/user/tap) 事件失效的问题可能与安卓系统的事件处理机制有关。disabled 属性会禁用元素的交互,包括点击事件。因此,[@tap](/user/tap) 事件不会被触发。
解决方案
-
使用
readonly属性: 如果你希望用户不能编辑input内容,但仍然希望触发点击事件,可以使用readonly属性代替disabled。readonly属性允许用户聚焦和点击input,但不能编辑其内容。<input type="text" readonly [@tap](/user/tap)="handleTap" /> -
使用
pointer-events: none: 如果你仍然需要使用disabled属性,但希望保留点击事件,可以通过 CSS 的pointer-events: none来禁用元素的点击事件,然后在父元素上监听点击事件。<div [@tap](/user/tap)="handleTap"> <input type="text" disabled style="pointer-events: none;" /> </div> -
使用条件判断: 如果你希望在
input被禁用时仍然能够触发某些逻辑,可以在[@tap](/user/tap)方法中添加条件判断。<input type="text" :disabled="isDisabled" [@tap](/user/tap)="handleTap" />methods: { handleTap() { if (!this.isDisabled) { // 你的逻辑 } else { // 当禁用时的逻辑 } } } -
使用自定义组件: 你可以创建一个自定义的
input组件,封装disabled和[@tap](/user/tap)的逻辑,以便更好地控制事件处理。<template> <div [@tap](/user/tap)="handleTap"> <input type="text" :disabled="isDisabled" /> </div> </template> <script> export default { props: { isDisabled: Boolean }, methods: { handleTap() { if (!this.isDisabled) { // 你的逻辑 } else { // 当禁用时的逻辑 } } } } </script>

