微信小程序點(diǎn)擊按鈕動(dòng)態(tài)切換input的disabled禁用/啟用狀態(tài)功能
做微信小程序項(xiàng)目的時(shí)候遇到一個(gè)功能,個(gè)人信息資料的修改與保存。以下是說明及簡化后的代碼:
1.頁面加載完成時(shí),所有input處于禁用狀態(tài);
2.點(diǎn)擊編輯按鈕時(shí),文字切換成“保存”,身份證input保持始終不可修改狀態(tài)(即禁用), 姓名input可以修改(即動(dòng)態(tài)加載切換禁用/啟用);
3.再次點(diǎn)擊按鈕文字切回“編輯”,所有input變?yōu)榻脿顟B(tài)。
以下是wxml部分
<view class="btn">
<button bindtap="changeInfo">{{text}}</button> //綁定按鈕的點(diǎn)擊事件
</view>
<view>姓名:
<input class="uName" type="text" disabled='{{isDisabled}}'/>
</view>
<view>身份證號:
<input class="uIdentity" type="idcard" disabled='true'/>
</view>
上段代碼中,姓名為動(dòng)態(tài)加載狀態(tài),所以disabled寫成disabled='{{isDisabled}}' 而身份證input為始終不可修改的狀態(tài),所以disabled寫死為disabled=‘true'
以下是js部分
Page({
data: {
isDisabled:true, //表示頁面加載完成時(shí)disabled為啟用狀態(tài)
text:"編輯" //表示按鈕初始文字為編輯
},
changeInfo(e) { //點(diǎn)擊事件發(fā)生時(shí)
//一定要寫成this.data.isDisabled,不然判斷出不來
if (!this.data.isDisabled) { //當(dāng)disabled=false時(shí)
this.setData({
isDisabled: true, //修改isDisabled的值為true(即啟用狀態(tài))
text: "編輯" //文字修改為“編輯”
})
}
else { //當(dāng)disabled=true時(shí)
this.setData({
isDisabled: false, //修改isDisabled的值為false(即禁用狀態(tài))
text: "保存" //文字修改為“保存”
})
}
}
將用戶信息數(shù)據(jù)動(dòng)態(tài)加載到input框中,此過程中身份證始終保持不可修改的狀態(tài),姓名可根據(jù)按鈕動(dòng)態(tài)切換成編輯和保存的狀態(tài)。
下面給大家補(bǔ)充點(diǎn)知識解決“微信小程序disabled屬性不生效”的問題!
微信小程序中帶disabled屬性的表單組件有(點(diǎn)擊可以進(jìn)入官方文檔):
button,checkbox,input,picker,radio,slider,switch,textarea
如果是固定禁用組件的話,直接放上disabled就好,簡單粗暴,如:
1. 忽略值的情況:
<button disabled>測試</button>
2. 使用值的情況:
<!-- 正確 -->
<button disabled="{{true}}">測試</button>
<button disabled="{{false}}">測試</button>
<!-- 錯(cuò)誤 -->
<button disabled="true">測試</button>
<button disabled="false">測試</button>
在以上的錯(cuò)誤寫法中,disabled="true"是有效的,但disabled="false"是無效的,接下來,我先解釋一下:

注意一下官方文檔中,disabled的值是布爾值(Boolean),而以上的字符串(String),賦值“false”就是true。
所以disabled="false"其實(shí)就是disabled=true,它的非禁用就無效了。
如果disabled的值是動(dòng)態(tài)的靈活的話,如:
在index.js中,設(shè)置一個(gè)data數(shù)據(jù)變量
Page({
data: {
isDisabled: true
}
})
在index.wxml中,用上表單組件
<input type="text" disabled="{{isDisabled}}" />
<button disabled="{{isDisabled}}">測試</button>
修改disabled的值
this.setData({
isDisabled: false
})
總結(jié)
到此這篇關(guān)于微信小程序點(diǎn)擊按鈕動(dòng)態(tài)切換input的disabled禁用/啟用狀態(tài)功能的文章就介紹到這了,更多相關(guān)微信小程序切換input內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 解決uni-app微信小程序input輸入框在底部時(shí),鍵盤彈起頁面整體上移問題
- 一文解決微信小程序button、input和image表單組件
- 微信小程序input、textarea層級過高穿透的問題解決
- 微信小程序事件 bindtap bindinput代碼實(shí)例
- 微信小程序?qū)崿F(xiàn)提交input信息到后臺的方法示例
- 詳解微信小程序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)簽詳解及簡單實(shí)例
- 微信小程序中input組件為什么設(shè)置readonly只讀屬性沒有作用(失效)?
相關(guān)文章
從表單校驗(yàn)看JavaScript策略模式的使用詳解
這篇文章主要介紹了從表單校驗(yàn)看JavaScript策略模式的使用,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10
IE6/7中g(shù)etAttribute獲取href/src 屬性(相對路徑0值與其它瀏覽器不同
IE6/7中g(shù)etAttribute獲取href/src 屬性(相對路徑0值與其它瀏覽器不同的解決方法2011-08-08
JavaScript增加數(shù)組中指定元素的5種方法總結(jié)
在JS中數(shù)組方法是非常重要且常用的的方法,在此整理總結(jié)一番,下面這篇文章主要給大家介紹了關(guān)于JavaScript增加數(shù)組中指定元素的5種方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-02-02
JavaScript+html5 canvas繪制的小人效果
這篇文章主要介紹了JavaScript+html5 canvas繪制的小人效果,涉及JavaScript結(jié)合html5 canvas圖形繪制及顏色隨機(jī)填充的技巧,需要的朋友可以參考下2016-01-01
微信小程序?qū)崿F(xiàn)單個(gè)卡片左滑顯示按鈕并防止上下滑動(dòng)干擾功能
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)單個(gè)卡片左滑顯示按鈕并防止上下滑動(dòng)干擾功能,利用小程序事件處理的api,分別讀取觸摸開始,觸摸移動(dòng)時(shí),觸摸結(jié)束的X/Y坐標(biāo),根據(jù)差值來改變整個(gè)卡片的位置,具體實(shí)例代碼跟隨小編一起看看吧2019-12-12

