微信小程序点击按钮动态切换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 相关文章推荐
javascript js cookie的存储,获取和删除
Dec 29 Javascript
原创javascript小游戏实现代码
Aug 19 Javascript
JSON为什么那样红为什么要用json(另有洞天)
Dec 26 Javascript
js使用数组判断提交数据是否存在相同数据
Nov 27 Javascript
jQuery动画效果animate和scrollTop结合使用实例
Apr 02 Javascript
分享JavaScript与Java中MD5使用两个例子
Dec 23 Javascript
jQuery Easyui实现左右布局
Jan 26 Javascript
springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项
Apr 23 Javascript
React全家桶环境搭建过程详解
May 18 Javascript
微信小程序云开发如何使用npm安装依赖
May 18 Javascript
vue跳转同一个组件,参数不同,页面接收值只接收一次的解决方法
Nov 05 Javascript
JS实现数组去重的11种方法总结
Apr 04 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
PHP 递归效率分析
2009/11/24 PHP
支持中文字母数字、自定义字体php验证码代码
2012/02/27 PHP
PHP防盗链代码实例
2014/08/27 PHP
PHP使用XMLWriter读写xml文件操作详解
2018/07/31 PHP
jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
2013/03/25 Javascript
jquery iframe操作详细解析
2013/11/20 Javascript
利用javaScript实现点击输入框弹出窗体选择信息
2013/12/11 Javascript
JS使用ajax方法获取指定url的head信息中指定字段值的方法
2015/03/24 Javascript
快速解决js开发下拉框中blur与click冲突
2016/10/10 Javascript
详解Jquery Easyui的验证扩展
2017/01/09 Javascript
ES6学习笔记之Set和Map数据结构详解
2017/04/07 Javascript
实例解析ES6 Proxy使用场景介绍
2018/01/08 Javascript
js实现点击按钮复制文本功能
2020/07/20 Javascript
jQuery实现炫丽的3d旋转星空效果
2018/07/04 jQuery
vue中设置height:100%无效的问题及解决方法
2018/07/27 Javascript
node.js中ws模块创建服务端和客户端,网页WebSocket客户端
2019/03/06 Javascript
vue中格式化时间过滤器代码实例
2019/04/17 Javascript
layui数据表格 table.render 报错的解决方法
2019/09/29 Javascript
详细分析vue响应式原理
2020/06/22 Javascript
Vue 实现创建全局组件,并且使用Vue.use() 载入方式
2020/08/11 Javascript
js实现淘宝浏览商品放大镜功能
2020/10/28 Javascript
vue2.0 watch里面的 deep和immediate用法说明
2020/10/30 Javascript
[09:33]2015国际邀请赛第四日TOP10
2015/08/08 DOTA
17个Python小技巧分享
2015/01/23 Python
Python使用Beautiful Soup包编写爬虫时的一些关键点
2016/01/20 Python
python使用fork实现守护进程的方法
2017/11/16 Python
使用python Telnet远程登录执行程序的方法
2019/01/26 Python
python同步两个文件夹下的内容
2019/08/29 Python
Python爬取微信小程序Charles实现过程图解
2020/09/29 Python
Python3+Django get/post请求实现教程详解
2021/02/16 Python
如何写一份好的自荐信
2014/01/02 职场文书
学校就业推荐信范文
2014/05/19 职场文书
公司员工违纪检讨书
2015/05/05 职场文书
房屋租赁意向书范本
2015/05/09 职场文书
Pytorch DataLoader shuffle验证方式
2021/06/02 Python
Python加密技术之RSA加密解密的实现
2022/04/08 Python