移动 > 腾讯 > 微信

微信小程序中input组件为什么设置readonly只读属性没有作用(失效)?

10人参与 2026-01-31 微信

前言

在博主印象中设置只读应该是readonly,太久没有写微信小程序,发现没有效果,
于是简单写篇文章记录下。

一、问题定位

微信小程序中,设置 readonly 属性后,input 组件仍然可以交互的常见原因:

  1. readonly 属性限制:仅阻止键盘输入,但仍可聚焦和长按复制
  2. 事件冒泡未处理:未阻止 touch/click 事件传播
  3. 样式冲突影响:css 可能覆盖了默认只读行为

二、核心解决方案

方案一:使用 disabled 替代

<input 
  class="search-input" 
  placeholder="请输入你需要搜索的型号"
  disabled
/>

特点

方案二:事件阻止方案

<input 
  class="search-input" 
  placeholder="请输入你需要搜索的型号"
  bindtap="preventtap"
  catchtouchstart="preventtouch"
/>
page({
  preventtap(e) {
    // 阻止默认行为
    return false;
  },
  preventtouch(e) {
    // 阻止触摸事件
    return false;
  }
})

方案三:css 控制交互

/* 禁止所有交互 */
.search-input {
  pointer-events: none;
  -webkit-user-select: none;
  user-select: none;
}

/* 仅禁止文本选择 */
.search-input {
  user-select: none;
}

三、替代方案推荐

方案一:使用 view 组件展示

<view class="search-display">
  请输入你需要搜索的型号
</view>

方案二:条件渲染

<view wx:if="{{isreadonly}}">
  <view class="search-text">{{searchvalue}}</view>
</view>
<view wx:else>
  <input 
    class="search-input" 
    placeholder="请输入你需要搜索的型号"
    bindinput="oninput"
  />
</view>

四、最佳实践建议

根据具体场景选择方案:

  1. 纯展示场景 → 使用 view 组件
  2. 表单禁用场景 → 使用 disabled 属性
  3. 需要聚焦但不可编辑readonly + 事件阻止
  4. 临时只读需求 → css pointer-events: none

五、注意事项

  1. 真机测试:部分属性在模拟器和真机表现不同
  2. 样式适配disabled 状态需考虑ui兼容性
  3. 用户体验:明确告知用户当前状态(如:置灰、提示文案)
  4. 版本兼容:确保基础库版本支持所用属性

六、完整示例代码

<!-- 综合方案:readonly + 事件阻止 -->
<input 
  class="search-input readonly-style"
  placeholder="请输入你需要搜索的型号"
  readonly
  bindtap="preventaction"
  value="{{searchvalue}}"
/>
page({
  data: {
    searchvalue: ''
  },
  preventaction() {
    wx.showtoast({
      title: '当前不可编辑',
      icon: 'none'
    })
    return false;
  }
})
.readonly-style {
  background-color: #f5f5f5;
  color: #999;
}

按以上方案实施,可有效解决微信小程序中 input 组件只读属性失效问题。

到此这篇关于微信小程序中input组件为什么设置readonly只读属性没有作用(失效)?的文章就介绍到这了,更多相关小程序input设置readonly失效内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

您想发表意见!!点此发布评论

推荐阅读

uni-app 开发微信小程序

12-22

韩剧怎么看在哪里看?最新韩剧网一站式高清在线观看平台介绍

11-28

铁路12306购票页面出现宠字是啥情况? 宠物预约托运服务的技巧

11-18

AnythingLLM怎么安装使用?AnythingLLM安装使用教程

11-13

通达oa怎么设置首页?通达oa设置首页的方法

11-13

抖音直播伴侣怎么设置直播特效?抖音直播伴侣设置直播特效的方法

11-13

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论