微信小程式點選按鈕動態切換input的disabled禁用/啟用狀態功能
做微信小程式專案的時候遇到一個功能,個人資訊資料的修改與儲存。以下是說明及簡化後的程式碼:
1.頁面載入完成時,所有input處於禁用狀態;
2.點選編輯按鈕時,文字切換成“儲存”,身份證input保持始終不可修改狀態(即禁用), 姓名input可以修改(即動態載入切換禁用/啟用);
3.再次點選按鈕文字切回“編輯”,所有input變為禁用狀態。
以下是wxml部分
<view class="btn"> <button bindtap="changeInfo">{{text}}</button> //繫結按鈕的點選事件 </view> <view>姓名: <input class="uName" type="text" disabled='{{isDisabled}}'/> </view> <view>身份證號: <input class="uIdentity" type="idcard" disabled='true'/> </view>
上段程式碼中,姓名為動態載入狀態,所以disabled寫成disabled='{{isDisabled}}
' 而身份證input為始終不可修改的狀態,所以disabled寫死為disabled=‘true'
以下是js部分
Page({ data: { isDisabled:true,//表示頁面載入完成時disabled為啟用狀態 text:"編輯" //表示按鈕初始文字為編輯 },changeInfo(e) { //點選事件發生時 //一定要寫成this.data.isDisabled,不然判斷出不來 if (!this.data.isDisabled) { //當disabled=false時 this.setData({ isDisabled: true,//修改isDisabled的值為true(即啟用狀態) text: "編輯" //文字修改為“編輯” }) } else { //當disabled=true時 this.setData({ isDisabled: false,//修改isDisabled的值為false(即禁用狀態) text: "儲存" //文字修改為“儲存” }) } }
將使用者資訊資料動態載入到input框中,此過程中身份證始終保持不可修改的狀態,姓名可根據按鈕動態切換成編輯和儲存的狀態。
下面給大家補充點知識解決“微信小程式disabled屬性不生效”的問題!
微信小程式中帶disabled屬性的表單元件有(點選可以進入官方文件):
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"其實就是disabled=true,它的非禁用就無效了。
如果disabled的值是動態的靈活的話,如:
在index.js中,設定一個data資料變數
Page({ data: { isDisabled: true } })
在index.wxml中,用上表單元件
<input type="text" disabled="{{isDisabled}}" /> <button disabled="{{isDisabled}}">測試</button>
修改disabled的值
this.setData({ isDisabled: false })
總結
到此這篇關於微信小程式點選按鈕動態切換input的disabled禁用/啟用狀態功能的文章就介紹到這了,更多相關微信小程式切換input內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!