微信小程序点击按钮动态切换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闭包介绍(转)
Jun 20 Javascript
javascript实现TreeView 无刷新展开的实例代码
Jul 13 Javascript
页面装载js及性能分析方法介绍
Mar 21 Javascript
node.js应用后台守护进程管理器Forever安装和使用实例
Jun 01 Javascript
jQuery的:parent选择器定义和用法
Jul 01 Javascript
javascript中的正则表达式使用指南
Mar 01 Javascript
JS数字抽奖游戏实现方法
May 04 Javascript
Javascript中的几种继承方式对比分析
Mar 22 Javascript
js仿淘宝商品放大预览功能
Mar 15 Javascript
使用原生js封装的ajax实例(兼容jsonp)
Oct 12 Javascript
vue 获取视频时长的实例代码
Aug 20 Javascript
微信小程序开发数据缓存基础知识辨析及运用实例详解
Nov 06 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并发访问实例代码
2012/09/06 PHP
php给图片添加文字水印方法汇总
2015/08/27 PHP
laravel 修改.htaccess文件 重定向public的解决方法
2019/10/12 PHP
js 页面传参数时 参数值含特殊字符的问题
2009/12/13 Javascript
jQuery的实现原理的模拟代码 -1 核心部分
2010/08/01 Javascript
关于js获取radio和select的属性并控制的代码
2011/05/12 Javascript
javascript新建标签,判断键盘输入,以及判断焦点(示例代码)
2013/11/25 Javascript
jquery获取元素索引值index()示例
2014/02/13 Javascript
window.location不跳转的问题解决方法
2014/04/17 Javascript
js实现动态显示时间效果
2017/03/06 Javascript
详解Angular2响应式表单
2017/06/14 Javascript
Easyui使用Dialog行内按钮布局的实例
2017/07/27 Javascript
Angularjs 手写日历的实现代码(不用插件)
2017/10/18 Javascript
JS中验证整数和小数的正则表达式
2018/10/08 Javascript
jQuery实现的导航条点击后高亮显示功能示例
2019/03/04 jQuery
nodejs对mongodb数据库的增加修删该查实例代码
2020/01/05 NodeJs
js this 绑定机制深入详解
2020/04/30 Javascript
vue tab切换,解决echartst图表宽度只有100px的问题
2020/07/19 Javascript
VUE 实现element upload上传图片到阿里云
2020/08/12 Javascript
javascript实现电商放大镜效果
2020/11/23 Javascript
一起来了解一下JavaScript的预编译(小结)
2021/03/01 Javascript
Python爬虫DNS解析缓存方法实例分析
2017/06/02 Python
sublime text 3配置使用python操作方法
2017/06/11 Python
对Python字符串中的换行符和制表符介绍
2018/05/03 Python
Python+OpenCV+pyQt5录制双目摄像头视频的实例
2019/06/28 Python
Python Gitlab Api 使用方法
2019/08/28 Python
Django 实现Admin自动填充当前用户的示例代码
2019/11/18 Python
Python unittest单元测试openpyxl实现过程解析
2020/05/27 Python
python爬虫搭配起Bilibili唧唧的流程分析
2020/12/01 Python
简单的HTML5初步入门教程
2015/09/29 HTML / CSS
学生周末长期请假条
2014/02/15 职场文书
2014年保险业务员工作总结
2014/12/23 职场文书
吴仁宝观后感
2015/06/09 职场文书
Spring IOC容器Bean的作用域及生命周期实例
2022/05/30 Java/Android
Vue 打包后相对路径的引用问题
2022/06/05 Vue.js