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

 更新时间:2020年03月07日 11:59:02   作者:hsyxxi  
这篇文章主要介绍了微信小程序点击按钮动态切换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属性的表单组件有(点击可以进入官方文档):

buttoncheckboxinputpickerradiosliderswitchtextarea

如果是固定禁用组件的话,直接放上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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 避免回车键导致的页面无意义刷新的解决方法

    避免回车键导致的页面无意义刷新的解决方法

    相信大家在实现页面局部刷新过程中都遇到过类似的问题:在文本框中输入完要搜索的关键字段,按回车结果整个页面刷新了,局部刷新肯定失败。
    2011-04-04
  • JavaScript中的6种变体函数的区别和应用

    JavaScript中的6种变体函数的区别和应用

    JavaScript 中函数调用有许多独特的变体方式,例如 ~function、-function 等,这些变体不仅展现了 JavaScript 语言的灵活性,也可以在某些场景下让代码更加简洁,本文将通过示例代码和解析,来全面剖析这些特殊的函数调用方式及其返回值的区别
    2025-01-01
  • javascript中CheckBox全选终极方案

    javascript中CheckBox全选终极方案

    在javascript页面中实现CheckBox或者Radio的选中状态是一件很容易的事情,下面我们来给大家展示下在asp.net中使用javascript中CheckBox全选终极方案,有需要的小伙伴可以参考下。
    2015-05-05
  • director.js实现前端路由使用实例

    director.js实现前端路由使用实例

    这篇文章主要介绍了director.js实现前端路由使用实例,director.js是最纯粹的路由注册/解析器,它在不刷新页面的情况下,利用“#”符号组织不同的URL路径,需要的朋友可以参考下
    2015-02-02
  • Bootstrap分页插件之Bootstrap Paginator实例详解

    Bootstrap分页插件之Bootstrap Paginator实例详解

    Bootstrap Paginator是一款基于Bootstrap的js分页插件,功能很丰富,个人觉得这款插件已经无可挑剔了,感兴趣的朋友跟着脚本之家小编一起学习吧
    2016-10-10
  • JavaScript数组方法reduce使用详解

    JavaScript数组方法reduce使用详解

    本文详细介绍了JavaScript数组reduce()方法的使用,包括核心语法、常见案例以及常见错误,通过实际案例和代码分析,帮助读者彻底掌握reduce方法,同时,还提供了reduce的polyfill实现,以深入理解其工作原理,需要的朋友可以参考下
    2025-02-02
  • JavaScript中两个感叹号的作用说明

    JavaScript中两个感叹号的作用说明

    用两个感叹号的作用就在于,如果明确设置了o中flag的值(非null/undefined/0""/等值),自然test就会取跟o.flag一样的值;如果没有设置,test就会默认为false,而不是null或undefined
    2011-12-12
  • javaScript canvas实现(画笔大小 颜色 橡皮的实例)

    javaScript canvas实现(画笔大小 颜色 橡皮的实例)

    下面小编就为大家分享一篇javaScript canvas实现(画笔大小 颜色 橡皮的实例),具有很好的参考价值,希望对大家有所帮助
    2017-11-11
  • 在微信小程序里使用watch和computed的方法

    在微信小程序里使用watch和computed的方法

    这篇文章主要介绍了在微信小程序里使用watch和computed的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • 效率高的Javscript字符串替换函数的benchmark

    效率高的Javscript字符串替换函数的benchmark

    这是经常使用的HTML特殊字符替换函数,即将 &、<、>、" 等函数替换成 &、<、>、"。通常的作法都是连续使用数个 replace 函数,而Clear仅使用一个 replace 就完成了替换。
    2008-08-08

最新评论