小程序input数据双向绑定实现方法


Posted in Javascript onOctober 17, 2019

我们都知道 vue 中可以使用 modal 来实现 input 内容数据的双向绑定。

小程序好像没有提供相应的方法支持,就需要我们自己写了。

原理

很简单,在 input 上先绑定需要取值的变量,如这个变量名是 name,然后再定义一个用于指向变量名的属性 data-modal 这个属性值设置为 name,在 input 的绑定方法中将这个属性值取出,就会知道这个 input 绑定了哪个变量,然后再将 input 的当前值赋给这个变量即可。

实现

wxml

<input id='name' 
  name="name"
  type='text' 
  value='{{name}}' <!-- input 从 js 中的 data.name 取值 -->
  data-modal='name' <!-- 这里通过 data-xx 的形式传递一个需要绑定的变量名,之后可以通过 event.dataset.xxx 轻松取到 -->
  bindinput='handleInputChange' <!-- 这里绑定 input 内容变化时的处理方法 -->
  >
</input>

wxs

Page({
 data: {
  name: String
 },
 handleInputChange: function(e){
   // 取出定义的变量名
  let targetData = e.currentTarget.dataset.modal; 

  // 取出定义的变量名
  let currentValue = e.detail.value; 
  
  // 将 input 值赋值给 定义的变量名,this.name 可以直接取到在 data 中定义的 name 值,其效果跟 this[变量名] 是对等的,这是 js 基础
  this[targetData] = currentValue; 
  
 }
}

效果如下图:

小程序input数据双向绑定实现方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JMenuTab简单使用说明
Mar 13 Javascript
《JavaScript高级程序设计》阅读笔记(二) ECMAScript中的原始类型
Feb 27 Javascript
javascript中使用new与不使用实例化对象的区别
Jun 22 Javascript
jQuery实现移动端滑块拖动选择数字效果
Dec 24 Javascript
BOM系列第三篇之定时器应用(时钟、倒计时、秒表和闹钟)
Aug 17 Javascript
Bootstrap基本样式学习笔记之表单(3)
Dec 07 Javascript
jquery mobile移动端幻灯片滑动切换效果
Apr 15 Javascript
vue实现重置表单信息为空的方法
Sep 29 Javascript
微信开发之微信jssdk录音功能开发示例
Oct 22 Javascript
Vuejs监听vuex中值的变化的方法示例
Dec 02 Javascript
详解vuex commit保存数据技巧
Dec 25 Javascript
微信小程序picker组件关于objectArray数据类型的绑定方法
Mar 13 Javascript
mpvue实现小程序签到金币掉落动画(api实现)
Oct 17 #Javascript
JS设置自定义快捷键并实现图片上下左右移动
Oct 17 #Javascript
JavaScript 实现同时选取多个时间段的方法
Oct 17 #Javascript
Layui事件监听的实现(表单和数据表格)
Oct 17 #Javascript
浅谈Vue.set实际上是什么
Oct 17 #Javascript
Vuex modules模式下mapState/mapMutations的操作实例
Oct 17 #Javascript
vuex + keep-alive实现tab标签页面缓存功能
Oct 17 #Javascript
You might like
php将数据库中的电话号码读取出来并生成图片
2008/08/31 PHP
php实现mysql同步的实现方法
2009/10/21 PHP
php连接与操作PostgreSQL数据库的方法
2014/12/25 PHP
php中session_id()函数详细介绍,会话id生成过程及session id长度
2015/09/23 PHP
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
2019/02/25 PHP
php写入mysql中文乱码的实例解决方法
2019/09/17 PHP
Prototype最新版(1.5 rc2)使用指南(1)
2007/01/10 Javascript
(function($){...})(jQuery)的意思
2010/07/22 Javascript
jQuery getJSON 处理json数据的代码
2010/07/26 Javascript
来自国外的页面JavaScript文件优化
2010/12/08 Javascript
合并table相同单元格的jquery插件分享(很精简)
2011/06/20 Javascript
JavaScript实现多维数组的方法
2013/11/20 Javascript
JS比较2个日期间隔的示例代码
2014/04/15 Javascript
javascript屏蔽右键代码
2014/05/15 Javascript
深入理解JavaScript系列(25):设计模式之单例模式详解
2015/03/03 Javascript
javascript实现表格增删改操作实例详解
2015/05/15 Javascript
JavaScript中apply方法的应用技巧小结
2016/09/29 Javascript
微信小程序progress组件使用详解
2018/01/31 Javascript
JavaScript复制内容到剪贴板的两种常用方法
2018/02/27 Javascript
全面了解JavaScript的作用域链
2019/04/03 Javascript
[42:32]VP vs RNG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
Python中除法使用的注意事项
2014/08/21 Python
举例介绍Python中的25个隐藏特性
2015/03/30 Python
Python常用随机数与随机字符串方法实例
2015/04/09 Python
pyqt5使用按钮进行界面的跳转方法
2019/06/19 Python
python 默认参数相关知识详解
2019/09/18 Python
关于Python字符串显示u...的解决方式
2020/03/06 Python
Jupyter Notebook远程登录及密码设置操作
2020/04/10 Python
keras的ImageDataGenerator和flow()的用法说明
2020/07/03 Python
CSS3教程(7):CSS3嵌入字体
2009/04/02 HTML / CSS
自荐信的基本格式
2014/02/22 职场文书
四风查摆问题自查报告
2014/10/10 职场文书
2015年医院工作总结范文
2015/04/09 职场文书
加薪申请书应该这样写!
2019/07/04 职场文书
Java中使用Filter过滤器的方法
2021/06/28 Java/Android
MySQL系列之十五 MySQL常用配置和性能压力测试
2021/07/02 MySQL