微信小程序bindinput与bindsubmit的区别实例分析


Posted in Javascript onApril 17, 2019

本文实例讲述了微信小程序bindinput与bindsubmit的区别。分享给大家供大家参考,具体如下:

实际上的话,bindinput还有bindsubmit是没有任何的可比性的,但是两者还是常常被人一起比较,为啥?

比如一个简单的搜索框,你是愿意选择使用bindinput还是使用bindsubmit?,虽然一个是表单,一个是文本输入框,但是两者都有一个共同点,就是可以去获取到用户的输入信息。这个时候,问题来了,区别在哪儿?

最简单的一段代码在下面:

<form bindsubmit='input1input'>
 <input name="input1" placeholder='这个是输入框' style='border:1rpx solid #000;'></input>
 <button form-type="submit">提交按钮</button>
</form>
<input bindinput='input2input' placeholder='这个是输入框' style='margin-top:200rpx;border:1rpx solid #000;'></input>
<button>提交按钮</button>
// pages/input/input.js
Page({
 data: { input1: "", input2: "" },
 input1input: function (e) {
  console.log(e);
  console.log(e.detail.value.input1)
 },
 input2input: function (e) {
  console.log(e);
  console.log(e.detail.value);
 }
})

甚是简单,那么问题来了,区别在哪儿?

当然,暂时的区别只有一个,就是console.log比较多,哈哈,开玩笑的。根据深圳那边客户的反应,说是使用input的时候,移动光标到一个地方后,输入一个文字,会重新移动光标的尾部,当然,不是上面的那些代码了,上面的代码是没问题的

有问题的是下面的代码:

// pages/input/input.js
Page({
 data: { input1: "this is the value for input1", input2: "this is the value for input2" },
 input1input: function (e) {
  console.log(e);
  console.log(e.detail.value.input1);
  this.setData({ input1: e.detail.value.input1 })
 },
 input2input: function (e) {
  console.log(e);
  console.log(e.detail.value);
  this.setData({ input2: e.detail.value })
 }
})
<form bindsubmit='input1input'>
 <input value='{{input1}}' name="input1" placeholder='这个是输入框' style='border:1rpx solid #000;height:100rpx;'></input>
 <button form-type="submit">提交按钮</button>
</form>
<input value="{{input2}}" bindinput='input2input' placeholder='这个是输入框' style='height:100rpx;margin-top:200rpx;border:1rpx solid #000;'></input>
<button>提交按钮</button>

其实原因很简单,就在一个地方,就是刷新界面的this.setData这而,为啥?因为你刷新后,value值修改,然后呢?

然后页面就刷新了,再然后呢?再然后就是因为你设置的是光标自动移动到最后一步,所以,最好的话是使用input的时候要小心点咯,当然我不是说使用input没有使用submit好,只是适应场景不同而已,比如没必要使用bindinput的时候去刷新界面,或则说我个人比较偏爱使用bindsbmit吧,。

希望本文所述对大家微信小程序开发有所帮助。

Javascript 相关文章推荐
js页面滚动时层智能浮动定位实现(jQuery/MooTools)
Aug 23 Javascript
Jquery chosen动态设置值实例介绍
Aug 08 Javascript
Javascript保存网页为图片借助于html2canvas库实现
Sep 05 Javascript
javascript引用赋值(地址传值)用法实例
Jan 13 Javascript
js实现简单的可切换选项卡效果
Apr 10 Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
Jan 20 Javascript
基于Particles.js制作超炫粒子动态背景效果(仿知乎)
Sep 13 Javascript
js判断输入框不能为空格或null值的实现方法
Mar 02 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【凹多边形的分离轴检测算法】
Dec 13 Javascript
JQuery的加载和选择器用法简单示例
May 13 jQuery
Vue实现计算器计算效果
Aug 17 Javascript
echarts饼图各个板块之间的空隙如何实现
Dec 01 Javascript
vue 项目 iOS WKWebView 加载
Apr 17 #Javascript
Vue组件间通信方法总结(父子组件、兄弟组件及祖先后代组件间)
Apr 17 #Javascript
详解vue-cli+element-ui树形表格(多级表格折腾小计)
Apr 17 #Javascript
抖音上用记事本编写爱心小程序教程
Apr 17 #Javascript
基于JS实现web端录音与播放功能
Apr 17 #Javascript
vue-cli的build的文件夹下没有dev-server.js文件配置mock数据的方法
Apr 17 #Javascript
vue component 中引入less文件报错 Module build failed
Apr 17 #Javascript
You might like
php 记录进行累加并显示总时长为秒的结果
2011/11/04 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
Aster vs KG BO3 第三场2.19
2021/03/10 DOTA
替代window.event.srcElement效果的可兼容性的函数
2009/12/18 Javascript
浅谈JavaScript之事件绑定
2013/07/08 Javascript
jQuery 如何先创建、再修改、后添加DOM元素
2014/05/20 Javascript
基于jquery css3实现点击动画弹出表单源码特效
2015/08/31 Javascript
jQuery实现的简单动态添加、删除表格功能示例
2017/09/21 jQuery
vue+vuecli+webpack中使用mockjs模拟后端数据的示例
2017/10/24 Javascript
Vue.directive()的用法和实例详解
2018/03/04 Javascript
vue移动端UI框架实现QQ侧边菜单组件
2018/03/09 Javascript
JavaScript引用类型Object常见用法实例分析
2018/08/08 Javascript
vuejs选中当前样式active的实例
2018/08/22 Javascript
Vue是怎么渲染template内的标签内容的
2020/06/05 Javascript
[03:55]DOTA2完美大师赛选手传记——LFY.MONET
2017/11/18 DOTA
[01:09:19]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第二场 2月28日
2021/03/11 DOTA
Python中类型关系和继承关系实例详解
2015/05/25 Python
Python算法应用实战之队列详解
2017/02/04 Python
Python存取XML的常见方法实例分析
2017/03/21 Python
Python 正则表达式实现计算器功能
2017/04/29 Python
python中利用xml.dom模块解析xml的方法教程
2017/05/24 Python
python实现list由于numpy array的转换
2018/04/04 Python
Python读取英文文件并记录每个单词出现次数后降序输出示例
2018/06/28 Python
python爬虫框架scrapy实现模拟登录操作示例
2018/08/02 Python
python 获取键盘输入,同时有超时的功能示例
2018/11/13 Python
python实现简单加密解密机制
2019/03/19 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
2019/05/09 Python
python中for循环把字符串或者字典添加到列表的方法
2019/07/20 Python
使用pyqt5 tablewidget 单元格设置正则表达式
2019/12/13 Python
给Python学习者的文件读写指南(含基础与进阶)
2020/01/29 Python
国外平面设计第一市场:99designs
2016/10/25 全球购物
空字符串(“”)和null的区别
2012/11/13 面试题
通知函格式范文
2015/04/27 职场文书
MySQL中使用or、in与union all在查询命令下的效率对比
2021/05/26 MySQL
【海涛教你打DOTA】剑圣第一人称视角解说
2022/04/01 DOTA
python获取带有返回值的多线程
2022/05/02 Python