小程序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 相关文章推荐
表单内同名元素的控制
Nov 22 Javascript
JAVASCRIPT车架号识别/验证函数代码 汽车车架号验证程序
Jan 08 Javascript
jquery悬浮提示框完整实例
Jan 13 Javascript
AngularJS使用ngOption实现下拉列表的实例代码
Jan 23 Javascript
jQuery siblings()用法实例详解
Apr 26 Javascript
JavaScript编程中实现对象封装特性的实例讲解
Jun 24 Javascript
前端自动化开发之Node.js的环境搭建教程
Apr 01 Javascript
AngularJS创建一个上传照片的指令实例代码
Feb 24 Javascript
使用jQuery给Table动态增加行、清空table的方法
Sep 05 jQuery
iView-admin 动态路由问题的解决方法
Oct 03 Javascript
layui实现数据表格自定义数据项
Oct 26 Javascript
封装Vue Element的table表格组件的示例详解
Aug 19 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
smarty模板引擎中变量及变量修饰器用法实例
2015/01/22 PHP
php array_merge函数使用需要注意的一个问题
2015/03/30 PHP
PHP多维数组遍历方法(2种实现方法)
2015/12/10 PHP
php 函数使用可变数量的参数方法
2017/05/02 PHP
jquery 常用操作整理 基础入门篇
2009/10/14 Javascript
javascript(jquery)利用函数修改全局变量的代码
2009/11/02 Javascript
网络之美 JavaScript中Get和Set访问器的实现代码
2010/09/19 Javascript
NodeJS 模块开发及发布详解分享
2012/03/07 NodeJs
一个简单的瀑布流效果(主体形式自写)
2013/05/27 Javascript
jquery提交form表单时禁止重复提交的方法
2014/02/13 Javascript
jQuery封装的tab选项卡插件分享
2015/06/16 Javascript
详解Javacript和AngularJS中的Promises
2016/02/09 Javascript
JavaScript数组操作函数汇总
2016/08/05 Javascript
jQuery简单倒计时效果完整示例
2016/09/20 Javascript
基于JavaScript实现瀑布流效果
2017/03/29 Javascript
javascript获取指定区间范围随机数的方法
2017/09/08 Javascript
vue中的$emit 与$on父子组件与兄弟组件的之间通信方式
2018/05/13 Javascript
使用python实现拉钩网上的FizzBuzzWhizz问题示例
2014/05/05 Python
Python实现抓取网页并且解析的实例
2014/09/20 Python
Python中scatter函数参数及用法详解
2017/11/08 Python
Python编程实现从字典中提取子集的方法分析
2018/02/09 Python
python实现数据写入excel表格
2018/03/25 Python
python使用百度文字识别功能方法详解
2019/07/23 Python
python加载自定义词典实例
2019/12/06 Python
Python之qq自动发消息的示例代码
2021/02/18 Python
详解CSS3+JS完美实现放大镜模式
2020/12/03 HTML / CSS
Expedia爱尔兰:酒店、机票、租车及廉价假期
2017/01/02 全球购物
一套带网友答案的.NET笔试题
2016/12/06 面试题
Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型
2013/10/30 面试题
计算机通信工程专业毕业生推荐信
2013/12/24 职场文书
酒店销售主管岗位职责
2014/01/04 职场文书
《海底世界》教学反思
2014/04/16 职场文书
青年岗位能手事迹材料
2014/12/23 职场文书
个性发展自我评价2015
2015/03/09 职场文书
叶县这家生产军用电台的兵工厂,人称“四机部”,走出一上将
2022/02/18 无线电
Python采集股票数据并制作可视化柱状图
2022/04/04 Python