微信小程序点击按钮动态切换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 面向对象编程(coolshell)
Mar 18 Javascript
在每个匹配元素的外部插入新元素的方法
Dec 20 Javascript
上传文件返回的json数据会被提示下载问题解决方案
Dec 03 Javascript
JS模拟简易滚动条效果代码(附demo源码)
Apr 05 Javascript
jQuery实用小技巧_输入框文字获取和失去焦点的简单实例
Aug 25 Javascript
WEB前端实现裁剪上传图片功能
Oct 17 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
Feb 10 Javascript
jQuery Plupload上传插件的使用
Apr 19 jQuery
深入浅析Vue 中 ref 的使用
Apr 29 Javascript
Vue scrollBehavior 滚动行为实现后退页面显示在上次浏览的位置
May 27 Javascript
JavaScript 类的封装操作示例详解
May 16 Javascript
微信小程序实现登录注册功能
Dec 29 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发电子邮件
2006/10/09 PHP
php中批量修改文件后缀名的函数代码
2011/10/23 PHP
php实现递归与无限分类的方法
2015/02/16 PHP
图片自动更新(说明)
2006/10/02 Javascript
Jquery 获取表单text,areatext,radio,checkbox,select值的代码
2009/11/12 Javascript
JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结
2010/06/18 Javascript
基于jquery的15款幻灯片插件
2011/04/10 Javascript
window.open关于浏览器拦截问题分析及解决方法
2013/02/05 Javascript
原生js实现半透明遮罩层效果具体代码
2013/06/06 Javascript
探讨js中的双感叹号判断
2013/11/11 Javascript
JS取request值以及自动执行使用示例
2014/02/24 Javascript
javascript从image转换为base64位编码的String
2014/07/29 Javascript
Javascript中的关键字和保留字整理
2014/10/16 Javascript
Thinkphp模板没有解析直接原样输出的解决方法
2014/10/31 Javascript
jQuery实现默认是闭合的FAQ展开效果菜单
2015/09/14 Javascript
AngularJs directive详解及示例代码
2016/09/01 Javascript
jQuery实现右键菜单、遮罩等效果代码
2016/09/27 Javascript
js时间戳和c#时间戳互转方法(推荐)
2017/02/15 Javascript
Node.js连接mongodb实例代码
2017/06/06 Javascript
React Native时间转换格式工具类分享
2017/10/24 Javascript
Vue2.0实现简单分页及跳转效果
2019/07/29 Javascript
约瑟夫问题的Python和C++求解方法
2015/08/20 Python
python实现定时发送qq消息
2019/01/18 Python
Python交互环境下打印和输入函数的实例内容
2020/02/16 Python
Python OrderedDict字典排序方法详解
2020/05/21 Python
详解Pytorch显存动态分配规律探索
2020/11/17 Python
伦敦新晋轻奢耳饰潮牌:Tada & Toy
2020/05/25 全球购物
捷克多品牌在线时尚商店:ANSWEAR.cz
2020/10/03 全球购物
Ruby如何定义一个类
2012/10/08 面试题
药学专业个人自我评价
2013/11/11 职场文书
新闻发布会活动策划方案
2014/09/15 职场文书
报到证办理个人委托书
2014/10/06 职场文书
夫妻双方自愿离婚协议书
2014/10/24 职场文书
人力资源部岗位职责
2015/02/11 职场文书
发言稿之优秀教师篇
2019/09/26 职场文书
一看就懂的MySQL的聚簇索引及聚簇索引是如何长高的
2021/05/25 MySQL