微信小程序點(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)知識(shí)解決“微信小程序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)文章希望大家以后多多支持腳本之家!
- 微信小程序?qū)崿F(xiàn)可拖動(dòng)懸浮圖標(biāo)(包括按鈕角標(biāo)的實(shí)現(xiàn))
- 微信小程序?qū)㈨撁姘粹o懸浮固定在底部的實(shí)現(xiàn)代碼
- 微信小程序中的video視頻實(shí)現(xiàn) 自定義播放按鈕、封面圖、視頻封面上文案
- 微信小程序?qū)崿F(xiàn)單個(gè)卡片左滑顯示按鈕并防止上下滑動(dòng)干擾功能
- 微信小程序批量監(jiān)聽輸入框?qū)Π粹o樣式進(jìn)行控制的實(shí)現(xiàn)代碼
- 微信小程序 多行文本顯示...+顯示更多按鈕和收起更多按鈕功能
- 微信小程序按鈕點(diǎn)擊動(dòng)畫效果的實(shí)現(xiàn)
- 操作按鈕懸浮固定在微信小程序底部的實(shí)現(xiàn)代碼
- 詳解微信小程序膠囊按鈕返回|首頁自定義導(dǎo)航欄功能
- 微信小程序mpvue點(diǎn)擊按鈕獲取button值的方法
- 微信小程序單選radio及多選checkbox按鈕用法示例
- 微信小程序開發(fā)之點(diǎn)擊按鈕退出小程序的實(shí)現(xiàn)方法
- 微信小程序按鈕巧妙用法
相關(guān)文章
基于JavaScript實(shí)現(xiàn)粒子流動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了如何通過JavaScript實(shí)現(xiàn)粒子流動(dòng)效果,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下2023-09-09
使用BootStrap建立響應(yīng)式網(wǎng)頁——通欄輪播圖(carousel)
這篇文章主要介紹了使用BootStrap建立響應(yīng)式網(wǎng)頁通欄輪播圖(carousel)的相關(guān)資料,需要的朋友可以參考下2016-12-12
聊聊JavaScript中的try...catch使用小技巧
作為一名web前端工程師,JavaScript中的try...catch是我們常用的特性之一,用于處理代碼中可能出現(xiàn)的錯(cuò)誤,本文小編將和大家一起聊聊JavaScript中的try...catch使用小技巧,需要的朋友可以參考下2023-11-11
javascript 刪除數(shù)組中重復(fù)項(xiàng)(uniq)
巧妙去除數(shù)組中的重復(fù)項(xiàng)的方法參考,需要的朋友可以參考下。2010-01-01
微信小程序?qū)崿F(xiàn)圖片滾動(dòng)效果示例
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)圖片滾動(dòng)效果,結(jié)合實(shí)例形式分析了微信小程序基于swiper組件的圖片滾動(dòng)效果相關(guān)實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下2018-12-12
微信小程序?qū)崿F(xiàn)tabbar凹凸圓選中動(dòng)畫效果實(shí)例
小程序日益增多的情況下,UI風(fēng)格顯得越來越重要,下面這篇文章主要給大家介紹了關(guān)于微信小程序?qū)崿F(xiàn)tabbar凹凸圓選中動(dòng)畫效果的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09

