小程序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 相关文章推荐
jQuery EasyUI API 中文文档 - Menu菜单
Oct 03 Javascript
有关于eclipse配置spket需要注意的一些地方
Apr 07 Javascript
Js判断参数(String,Array,Object)是否为undefined或者值为空
Nov 04 Javascript
javaScript对文字按照拼音排序实现代码
Dec 27 Javascript
使用delegate方法为一个tr标签加一个链接
Jun 27 Javascript
jQuery使用hide方法隐藏元素自身用法实例
Mar 30 Javascript
JS框架之vue.js(深入三:组件1)
Sep 29 Javascript
sea.js常用的api简易文档
Nov 15 Javascript
原生JS轮播图插件
Feb 09 Javascript
JavaScript中清空数组的三种方式
Mar 22 Javascript
Vue实现底部侧边工具栏的实例代码
Sep 03 Javascript
vue.js使用v-model实现表单元素(input) 双向数据绑定功能示例
Mar 08 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
phpMyAdmin 安装及问题总结
2009/05/28 PHP
PHP中的session永不过期的解决思路及实现方法分享
2011/04/20 PHP
PHP中HTML标签过滤技巧
2014/01/07 PHP
php实现的Curl封装类Curl.class.php用法实例分析
2015/09/25 PHP
一步一步教你写一个jQuery的插件教程(Plugin)
2009/09/03 Javascript
js用拖动滑块来控制图片大小的方法
2015/02/27 Javascript
简单学习JavaScript中的for语句循环结构
2015/11/10 Javascript
JavaScript中获取Radio被选中的值
2015/11/11 Javascript
js实现兼容IE、Firefox的图片缩放代码
2015/12/08 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
node.js基于mongodb的搜索分页示例
2017/01/22 Javascript
使用vue-infinite-scroll实现无限滚动效果
2018/06/22 Javascript
vue实现类似淘宝商品评价页面星级评价及上传多张图片功能
2018/10/29 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
2019/03/16 jQuery
细说webpack6 Babel的使用详解
2019/09/26 Javascript
vue 自定义组件的写法与用法详解
2020/03/04 Javascript
vue 使用 vue-pdf 实现pdf在线预览的示例代码
2020/04/26 Javascript
原生JavaScript实现进度条
2021/02/19 Javascript
解决seaborn在pycharm中绘图不出图的问题
2018/05/24 Python
python排序函数sort()与sorted()的区别
2018/09/18 Python
对于Python深浅拷贝的理解
2019/07/29 Python
Python图像处理库PIL的ImageGrab模块介绍详解
2020/02/26 Python
Tensorflow加载Vgg预训练模型操作
2020/05/26 Python
Pretty Green美国:英式摇滚服饰风格代表品牌之一
2019/01/23 全球购物
Made in Design德国:设计师家具、灯具和装饰
2019/10/31 全球购物
本科生求职简历的自我评价
2013/10/21 职场文书
人事主管的岗位职责
2013/11/16 职场文书
家长给幼儿园的表扬信
2014/01/09 职场文书
运动会跳远加油稿
2014/02/20 职场文书
理财投资建议书
2014/03/12 职场文书
元旦晚会感言
2014/03/12 职场文书
公司晚会策划方案
2014/05/17 职场文书
《周恩来的四个昼夜》观后思想汇报范文两篇
2014/09/10 职场文书
2015年节能减排工作总结
2015/05/14 职场文书
带你彻底理解JavaScript中的原型对象
2021/04/14 Javascript
新的CSS 伪类函数 :is() 和 :where()示例详解
2022/08/05 HTML / CSS