微信小程序點(diǎn)擊按鈕動態(tài)切換input的disabled禁用/啟用狀態(tài)功能
做微信小程序項(xiàng)目的時候遇到一個功能,個人信息資料的修改與保存。以下是說明及簡化后的代碼:
1.頁面加載完成時,所有input處于禁用狀態(tài);
2.點(diǎn)擊編輯按鈕時,文字切換成“保存”,身份證input保持始終不可修改狀態(tài)(即禁用), 姓名input可以修改(即動態(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>
上段代碼中,姓名為動態(tài)加載狀態(tài),所以disabled寫成disabled='{{isDisabled}}
' 而身份證input為始終不可修改的狀態(tài),所以disabled寫死為disabled=‘true'
以下是js部分
Page({ data: { isDisabled:true, //表示頁面加載完成時disabled為啟用狀態(tài) text:"編輯" //表示按鈕初始文字為編輯 }, changeInfo(e) { //點(diǎn)擊事件發(fā)生時 //一定要寫成this.data.isDisabled,不然判斷出不來 if (!this.data.isDisabled) { //當(dāng)disabled=false時 this.setData({ isDisabled: true, //修改isDisabled的值為true(即啟用狀態(tài)) text: "編輯" //文字修改為“編輯” }) } else { //當(dāng)disabled=true時 this.setData({ isDisabled: false, //修改isDisabled的值為false(即禁用狀態(tài)) text: "保存" //文字修改為“保存” }) } }
將用戶信息數(shù)據(jù)動態(tài)加載到input框中,此過程中身份證始終保持不可修改的狀態(tài),姓名可根據(jù)按鈕動態(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> <!-- 錯誤 --> <button disabled="true">測試</button> <button disabled="false">測試</button>
在以上的錯誤寫法中,disabled="true"是有效的,但disabled="false"是無效的,接下來,我先解釋一下:
注意一下官方文檔中,disabled的值是布爾值(Boolean),而以上的字符串(String),賦值“false”就是true。
所以disabled="false"其實(shí)就是disabled=true,它的非禁用就無效了。
如果disabled的值是動態(tài)的靈活的話,如:
在index.js中,設(shè)置一個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)擊按鈕動態(tài)切換input的disabled禁用/啟用狀態(tài)功能的文章就介紹到這了,更多相關(guān)微信小程序切換input內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 微信小程序?qū)崿F(xiàn)可拖動懸浮圖標(biāo)(包括按鈕角標(biāo)的實(shí)現(xiàn))
- 微信小程序?qū)㈨撁姘粹o懸浮固定在底部的實(shí)現(xiàn)代碼
- 微信小程序中的video視頻實(shí)現(xiàn) 自定義播放按鈕、封面圖、視頻封面上文案
- 微信小程序?qū)崿F(xiàn)單個卡片左滑顯示按鈕并防止上下滑動干擾功能
- 微信小程序批量監(jiān)聽輸入框?qū)Π粹o樣式進(jìn)行控制的實(shí)現(xiàn)代碼
- 微信小程序 多行文本顯示...+顯示更多按鈕和收起更多按鈕功能
- 微信小程序按鈕點(diǎn)擊動畫效果的實(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)粒子流動效果
這篇文章主要為大家詳細(xì)介紹了如何通過JavaScript實(shí)現(xiàn)粒子流動效果,文中的示例代碼講解詳細(xì),具有一定的參考價值,感興趣的小伙伴可以參考一下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)的錯誤,本文小編將和大家一起聊聊JavaScript中的try...catch使用小技巧,需要的朋友可以參考下2023-11-11javascript 刪除數(shù)組中重復(fù)項(xiàng)(uniq)
巧妙去除數(shù)組中的重復(fù)項(xiàng)的方法參考,需要的朋友可以參考下。2010-01-01微信小程序?qū)崿F(xiàn)tabbar凹凸圓選中動畫效果實(shí)例
小程序日益增多的情況下,UI風(fēng)格顯得越來越重要,下面這篇文章主要給大家介紹了關(guān)于微信小程序?qū)崿F(xiàn)tabbar凹凸圓選中動畫效果的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09