news 2026/5/30 18:46:36

【小程序】微信小程序input设置readonly只读属性无效,这是怎么回事呢

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【小程序】微信小程序input设置readonly只读属性无效,这是怎么回事呢

🌹欢迎来到《小5讲堂》🌹
🌹这是《小程序》系列文章,每篇文章将以博主理解的角度展开讲解。🌹
🌹温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!🌹
👨💻 作者简介

🏆 荣誉头衔:2024博客之星Top14 | CSDN博客专家 | 阿里云专家博主

🎤 经历:曾多次进行线下演讲,亦是CSDN内容合伙人以及新星优秀导师

💡 信念“帮助别人,成长自己!”

🚀 技术领域:深耕全栈,精通 .NET Core (C#)、Python、Java,熟悉主流数据库

🤝 欢迎交流:无论是基础概念还是进阶实战,都欢迎与我探讨!


目录

  • 前言
    • 一、问题定位
  • 二、核心解决方案
    • 方案一:使用 disabled 替代
    • 方案二:事件阻止方案
    • 方案三:CSS 控制交互
  • 三、替代方案推荐
    • 方案一:使用 view 组件展示
    • 方案二:条件渲染
  • 四、最佳实践建议
  • 五、注意事项
  • 六、完整示例代码
  • 推荐文章

前言

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

一、问题定位

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

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

二、核心解决方案

方案一:使用 disabled 替代

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

特点

  • 完全禁止交互
  • 组件变为灰色不可用状态
  • 适用于表单禁用场景

方案二:事件阻止方案

<inputclass="search-input"placeholder="请输入你需要搜索的型号"bindtap="preventTap"catchtouchstart="preventTouch"/>
Page({preventTap(e){// 阻止默认行为returnfalse;},preventTouch(e){// 阻止触摸事件returnfalse;}})

方案三:CSS 控制交互

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

三、替代方案推荐

方案一:使用 view 组件展示

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

方案二:条件渲染

<viewwx:if="{{isReadonly}}"><viewclass="search-text">{{searchValue}}</view></view><viewwx:else><inputclass="search-input"placeholder="请输入你需要搜索的型号"bindinput="onInput"/></view>

四、最佳实践建议

根据具体场景选择方案:

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

五、注意事项

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

六、完整示例代码

<!-- 综合方案:readonly + 事件阻止 --><inputclass="search-input readonly-style"placeholder="请输入你需要搜索的型号"readonlybindtap="preventAction"value="{{searchValue}}"/>
Page({data:{searchValue:''},preventAction(){wx.showToast({title:'当前不可编辑',icon:'none'})returnfalse;}})
.readonly-style{background-color:#f5f5f5;color:#999;}

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

推荐文章

【小程序】微信小程序input设置readonly只读属性无效,这是怎么回事呢

【小程序】微信开发者工具上调用api接口可以,到了线上调用发现提示wx.request调用报错,原来是https协议问题

【小程序】微信小程序开发,给用户发送一次性订阅消息,常见参数长度和数据类型说明,你值得收藏

【小程序】微信小程序开发,分享给朋友或者朋友圈的功能增加地址参数,以及如何进行带参数本地测试

【小程序】.net core2.1对接微信支付开发时自己挖的坑

【前端】微信小程序,同名图片缓存问题,增加图片后缀动态参数值解决

【小程序】常用方法、知识点汇总1

【腾讯云】AI驱动TDSQL-C Serveress 数据库技术实战营-如何是从0到1体验电商可视化分析小助手得统计功能,一句话就能输出目标统计图

【随笔】博客质量分计算,如何让自己的博客脱颖而出,也许文章能够给你答案

【Sql Server】sql server 2019设置远程访问,外网服务器需要设置好安全组入方向规则

【千帆AppBuilder】零代码+组件+代码节点方式实现AI应用《法定退休年龄计算器》

【1024程序员节】分享下博主的AI应用之旅,有哪些好玩有趣的智能体呢,不妨一起探索下

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/29 0:54:36

HTTP/2与HTTP/3协议的新型攻击面

第一部分&#xff1a;开篇明义 —— 定义、价值与目标 定位与价值 网络协议的演进始终伴随着安全边界的重塑。从HTTP/1.1到HTTP/2&#xff0c;再到基于QUIC的HTTP/3&#xff0c;每一次变革在提升性能、改善用户体验的同时&#xff0c;也引入了全新的攻击向量和攻防范式。这些新…

作者头像 李华
网站建设 2026/5/29 13:12:04

HTTP Desync攻击的自动化检测与利用

第一部分&#xff1a;开篇明义 —— 定义、价值与目标 定位与价值 在Web应用渗透测试的武器库中&#xff0c;HTTP Desync&#xff08;HTTP协议去同步&#xff09;攻击是一种相对隐蔽却威力强大的高阶技巧。它并非针对应用逻辑或特定函数&#xff0c;而是直接撼动现代Web架构的…

作者头像 李华
网站建设 2026/5/28 16:02:08

企业微信 API 开发干货:外部群消息主动推送核心逻辑

QiWe开放平台 个人名片 API驱动企微自动化&#xff0c;让开发更高效 核心能力&#xff1a;为开发者提供标准化接口、快速集成工具&#xff0c;助力产品高效拓展功能场景 官方站点&#xff1a;https://www.qiweapi.com 团队定位&#xff1a;专注企微API生态的技术服务团队 对接…

作者头像 李华
网站建设 2026/5/30 8:38:58

[特殊字符]️_开发效率与运行性能的平衡艺术[20260128151042]

作为一名经历过无数项目开发的工程师&#xff0c;我深知开发效率与运行性能之间的平衡是多么重要。在快节奏的互联网行业&#xff0c;我们既需要快速交付功能&#xff0c;又需要保证系统性能。今天我要分享的是如何在开发效率和运行性能之间找到最佳平衡点的实战经验。 &#…

作者头像 李华
网站建设 2026/5/30 10:46:05

基于springboot的美发商城系统

文章目录详细视频演示项目介绍技术介绍功能介绍核心代码系统效果图源码获取详细视频演示 文章底部名片&#xff0c;获取项目的完整演示视频&#xff0c;免费解答技术疑问 项目介绍 基于 SpringBoot 的美发商城系统是一款融合 “美发产品销售、美发服务预约、发型参考、用户互…

作者头像 李华
网站建设 2026/5/30 7:48:05

深度学习篇---数据读取和训练参数通俗详解

一、整体比喻&#xff1a;准备和享用晚餐 想象你要准备一顿丰盛的晚餐&#xff1a; 数据读取 买菜、洗菜、切菜的过程 训练过程 炒菜、品尝、调整的过程 二、数据读取参数&#xff08;买菜做饭篇&#xff09; 2.1 数据读取的基本流程 原数据&#xff08;市场买菜&#x…

作者头像 李华