微信小程序点击按钮动态切换input的disabled禁用/启用状态功能


Posted in Javascript onMarch 07, 2020

做微信小程序项目的时候遇到一个功能,个人信息资料的修改与保存。以下是说明及简化后的代码:

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"是无效的,接下来,我先解释一下:

微信小程序点击按钮动态切换input的disabled禁用/启用状态功能

注意一下官方文档中,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内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
基于jquery的Repeater实现代码
Jul 17 Javascript
jQuery Ajax 仿AjaxPro.Utility.RegisterTypeForAjax辅助方法
Sep 27 Javascript
javascript修改图片src的方法
Jan 27 Javascript
js实现的早期滑动门菜单效果代码
Aug 27 Javascript
jQuery EasyUi实战教程之布局篇
Jan 26 Javascript
jquery广告无缝轮播实例
Jan 05 Javascript
js实现文本上下来回滚动
Feb 03 Javascript
jQuery回调方法使用示例
Jun 26 jQuery
微信小程序实现form表单本地储存数据
Jun 27 Javascript
JavaScript HTML DOM元素 节点操作汇总
Jul 29 Javascript
layui 弹出层回调获取弹出层数据的例子
Sep 02 Javascript
javascript中导出与导入实现模块化管理教程
Dec 03 Javascript
微信小程序实现比较功能的方法汇总(五种方法)
Mar 07 #Javascript
微信小程序实现下滑到底部自动翻页功能
Mar 07 #Javascript
js实现选项卡效果
Mar 07 #Javascript
基于JS正则表达式实现模板数据动态渲染(实现思路详解)
Mar 07 #Javascript
js实现简单放大镜效果
Mar 07 #Javascript
js实现文字头像的生成代码
Mar 07 #Javascript
JavaScript队列结构Queue实现过程解析
Mar 07 #Javascript
You might like
5.PHP的其他功能
2006/10/09 PHP
PHP4实际应用经验篇(5)
2006/10/09 PHP
超级好用的一个php上传图片类(随机名,缩略图,加水印)
2010/06/30 PHP
Windows平台实现PHP连接SQL Server2008的方法
2017/07/26 PHP
基于laravel缓冲cache的用法详解
2019/10/23 PHP
不错的asp中显示新闻的功能
2006/10/13 Javascript
学习ExtJS fit布局使用说明
2009/10/08 Javascript
jquery获取子节点和父节点的示例代码
2013/09/10 Javascript
javascript面向对象快速入门实例
2015/01/13 Javascript
Javascript中For In语句用法实例
2015/05/14 Javascript
JavaScript实现广告的关闭与显示效果实例
2015/07/02 Javascript
MVC Ajax Helper或Jquery异步加载部分视图
2015/11/29 Javascript
JS+CSS3制作炫酷的弹窗效果
2016/11/08 Javascript
DropDownList实现可输入可选择(两种版本可选)
2016/12/07 Javascript
TypeScript基础入门教程之三重斜线指令详解
2018/10/22 Javascript
vuex 解决报错this.$store.commit is not a function的方法
2018/12/17 Javascript
javascript 函数的暂停和恢复实例详解
2020/04/25 Javascript
使用python解析xml成对应的html示例分享
2014/04/02 Python
简要讲解Python编程中线程的创建与锁的使用
2016/02/28 Python
Python数据结构与算法之二叉树结构定义与遍历方法详解
2017/12/12 Python
Python实现生成随机日期字符串的方法示例
2017/12/25 Python
Python selenium抓取微博内容的示例代码
2018/05/17 Python
python调用c++返回带成员指针的类指针实例
2019/12/12 Python
pytorch中的transforms模块实例详解
2019/12/31 Python
Python post请求实现代码实例
2020/02/28 Python
Python将二维列表list的数据输出(TXT,Excel)
2020/04/23 Python
Python Django中间件使用原理及流程分析
2020/06/13 Python
python使用正则表达式匹配txt特定字符串(有换行)
2020/12/09 Python
html5新增的定时器requestAnimationFrame实现进度条功能
2018/12/13 HTML / CSS
HTML5 语音搜索只需一句代码
2013/01/03 HTML / CSS
Html5移动端div固定到底部实现底部导航条的几种方式
2021/03/09 HTML / CSS
Unix控制后台进程都有哪些进程
2016/09/22 面试题
大四自我鉴定范文
2013/10/06 职场文书
虚拟机linux端mysql数据库无法远程访问的解决办法
2021/05/26 MySQL
spring boot中nativeQuery的用法
2021/07/26 Java/Android
Window server 2012 R2 AD域的组策略相关设置
2022/04/28 Servers