微信小程序中input組件為什么設(shè)置readonly只讀屬性沒(méi)有作用(失效)?
前言
在博主印象中設(shè)置只讀應(yīng)該是readonly,太久沒(méi)有寫微信小程序,發(fā)現(xiàn)沒(méi)有效果,
于是簡(jiǎn)單寫篇文章記錄下。

一、問(wèn)題定位
微信小程序中,設(shè)置 readonly 屬性后,input 組件仍然可以交互的常見(jiàn)原因:
- readonly 屬性限制:僅阻止鍵盤輸入,但仍可聚焦和長(zhǎng)按復(fù)制
- 事件冒泡未處理:未阻止 touch/click 事件傳播
- 樣式?jīng)_突影響:CSS 可能覆蓋了默認(rèn)只讀行為
二、核心解決方案
方案一:使用 disabled 替代

<input class="search-input" placeholder="請(qǐng)輸入你需要搜索的型號(hào)" disabled />
特點(diǎn):
- 完全禁止交互
- 組件變?yōu)榛疑豢捎脿顟B(tài)
- 適用于表單禁用場(chǎng)景
方案二:事件阻止方案
<input class="search-input" placeholder="請(qǐng)輸入你需要搜索的型號(hào)" bindtap="preventTap" catchtouchstart="preventTouch" />
Page({
preventTap(e) {
// 阻止默認(rèn)行為
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"> 請(qǐng)輸入你需要搜索的型號(hào) </view>
方案二:條件渲染
<view wx:if="{{isReadonly}}">
<view class="search-text">{{searchValue}}</view>
</view>
<view wx:else>
<input
class="search-input"
placeholder="請(qǐng)輸入你需要搜索的型號(hào)"
bindinput="onInput"
/>
</view>
四、最佳實(shí)踐建議
根據(jù)具體場(chǎng)景選擇方案:
- 純展示場(chǎng)景 → 使用
view組件 - 表單禁用場(chǎng)景 → 使用
disabled屬性 - 需要聚焦但不可編輯 →
readonly+ 事件阻止 - 臨時(shí)只讀需求 → CSS
pointer-events: none
五、注意事項(xiàng)
- 真機(jī)測(cè)試:部分屬性在模擬器和真機(jī)表現(xiàn)不同
- 樣式適配:
disabled狀態(tài)需考慮UI兼容性 - 用戶體驗(yàn):明確告知用戶當(dāng)前狀態(tài)(如:置灰、提示文案)
- 版本兼容:確?;A(chǔ)庫(kù)版本支持所用屬性
六、完整示例代碼
<!-- 綜合方案:readonly + 事件阻止 -->
<input
class="search-input readonly-style"
placeholder="請(qǐng)輸入你需要搜索的型號(hào)"
readonly
bindtap="preventAction"
value="{{searchValue}}"
/>
Page({
data: {
searchValue: ''
},
preventAction() {
wx.showToast({
title: '當(dāng)前不可編輯',
icon: 'none'
})
return false;
}
})
.readonly-style {
background-color: #f5f5f5;
color: #999;
}
按以上方案實(shí)施,可有效解決微信小程序中 input 組件只讀屬性失效問(wèn)題。
到此這篇關(guān)于微信小程序中input組件為什么設(shè)置readonly只讀屬性沒(méi)有作用(失效)?的文章就介紹到這了,更多相關(guān)小程序input設(shè)置readonly失效內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 解決uni-app微信小程序input輸入框在底部時(shí),鍵盤彈起頁(yè)面整體上移問(wèn)題
- 一文解決微信小程序button、input和image表單組件
- 微信小程序input、textarea層級(jí)過(guò)高穿透的問(wèn)題解決
- 微信小程序點(diǎn)擊按鈕動(dòng)態(tài)切換input的disabled禁用/啟用狀態(tài)功能
- 微信小程序事件 bindtap bindinput代碼實(shí)例
- 微信小程序?qū)崿F(xiàn)提交input信息到后臺(tái)的方法示例
- 詳解微信小程序input標(biāo)簽正則初體驗(yàn)
- 微信小程序input框中加入小圖標(biāo)的實(shí)現(xiàn)方法
- 微信小程序使用input組件實(shí)現(xiàn)密碼框功能【附源碼下載】
- 微信小程序 input輸入及動(dòng)態(tài)設(shè)置按鈕的實(shí)現(xiàn)
- 微信小程序中input標(biāo)簽詳解及簡(jiǎn)單實(shí)例
相關(guān)文章
Windows系統(tǒng)下Git的詳細(xì)安裝步驟和基礎(chǔ)設(shè)置指南
本文提供了Windows系統(tǒng)下Git的完整安裝配置指南,涵蓋下載安裝、驗(yàn)證配置、基礎(chǔ)設(shè)置、環(huán)境變量配置、常用命令示例及常見(jiàn)問(wèn)題解決方案,并推薦了常用的圖形化客戶端工具,需要的朋友可以參考下2026-04-04
基于rsync寫腳本實(shí)現(xiàn)多節(jié)點(diǎn)多服務(wù)器文件一鍵同步的方法
這篇文章主要介紹了利用rsync寫腳本實(shí)現(xiàn)多節(jié)點(diǎn)多服務(wù)器文件一鍵同步,本文將介紹?scp?和?rsync?兩個(gè)命令及基本語(yǔ)法介紹,需要的朋友可以參考下2022-01-01
解決idea打開(kāi)窗口/tab過(guò)多導(dǎo)致隱藏的問(wèn)題
這篇文章主要介紹了解決idea打開(kāi)窗口/tab過(guò)多導(dǎo)致隱藏的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
深入剖析從輸入U(xiǎn)RL到頁(yè)面顯示過(guò)程原理
這篇文章主要為大家深入剖析了從輸入U(xiǎn)RL到頁(yè)面顯示這中間發(fā)生的過(guò)程原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
chatGPT使用及注冊(cè)過(guò)程中常見(jiàn)的一些錯(cuò)誤解決方法(所有報(bào)錯(cuò)匯總)
這篇文章主要介紹了chatGPT注冊(cè)報(bào)錯(cuò)及使用過(guò)程中報(bào)錯(cuò)匯總及解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02
知識(shí)蒸餾聯(lián)邦學(xué)習(xí)的個(gè)性化技術(shù)綜述
這篇文章主要為大家介紹了知識(shí)蒸餾聯(lián)邦學(xué)習(xí)的個(gè)性化技術(shù)綜述,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05

