微信小程序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 相关文章推荐
新手入门常用代码集锦
Jan 11 Javascript
baidu博客的编辑友情链接的新的层窗口!经典~支持【FF】
Feb 09 Javascript
jQuery 判断元素上是否绑定了事件
Oct 28 Javascript
.net,js捕捉文本框回车键事件的小例子(兼容多浏览器)
Mar 11 Javascript
jquery 缓存问题的几个解决方法
Nov 11 Javascript
jquery库或JS文件在eclipse下报错问题解决方法
Apr 17 Javascript
JavaScript中消除闭包的一般方法介绍
Mar 16 Javascript
jQuery实现自定义checkbox和radio样式
Jul 13 Javascript
javascript实现在指定元素中垂直水平居中
Sep 13 Javascript
javascript中的altKey 和 Event属性大全
Nov 06 Javascript
vue Render中slots的使用的实例代码
Jul 19 Javascript
JS+JQuery实现无缝连接轮播图
Dec 30 jQuery
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
不用数据库的多用户文件自由上传投票系统(3)
2006/10/09 PHP
PHP获取网卡地址的代码
2008/04/09 PHP
PHP5+UTF8多文件上传类
2008/10/17 PHP
Thinkphp实现MySQL读写分离操作示例
2014/06/25 PHP
PHP数学运算函数大汇总(经典值得收藏)
2016/04/01 PHP
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
2017/02/18 PHP
PHP+MySQL实现模糊查询员工信息功能示例
2018/06/01 PHP
Bootstrap页面布局基础知识全面解析
2016/06/13 Javascript
Javascript中函数名.length属性用法分析(对比arguments.length)
2016/09/16 Javascript
基于jQuery实现的Ajax 验证用户名唯一性实例代码
2017/06/28 jQuery
Angular实现的敏感文字自动过滤与提示功能示例
2017/12/29 Javascript
vue实现点击当前标签高亮效果【推荐】
2018/06/22 Javascript
浅析JS中什么是自定义react数据验证组件
2018/10/19 Javascript
微信小程序 flexbox layout快速实现基本布局的解决方案
2020/03/24 Javascript
小程序分享链接onShareAppMessage的具体用法
2020/05/22 Javascript
解决vue安装less报错Failed to compile with 1 errors的问题
2020/10/22 Javascript
js实现鼠标拖曳效果
2020/12/30 Javascript
[00:56]跨越时空加入战场 全新祈求者身心“失落奇艺侍祭”展示
2019/07/20 DOTA
python求最大值最小值方法总结
2019/06/25 Python
在Python中等距取出一个数组其中n个数的实现方式
2019/11/27 Python
python第三方库学习笔记
2020/02/07 Python
pandas 强制类型转换 df.astype实例
2020/04/09 Python
python读取xml文件方法解析
2020/08/04 Python
python boto和boto3操作bucket的示例
2020/10/30 Python
HTML5中的autofocus(自动聚焦)属性介绍
2014/04/23 HTML / CSS
法国在线宠物店:zooplus.fr
2018/02/23 全球购物
韩国演唱会订票网站:StubHub韩国
2019/01/17 全球购物
违纪检讨书2000字
2014/02/08 职场文书
推广普通话的宣传语
2015/07/13 职场文书
公司档案管理制度
2015/08/05 职场文书
诚信教育主题班会
2015/08/13 职场文书
2016清明节森林防火广播稿
2015/12/17 职场文书
python控制台打印log输出重复的解决方法
2021/05/14 Python
解决Vue+SpringBoot+Shiro跨域问题
2021/06/09 Vue.js
Python中seaborn库之countplot的数据可视化使用
2021/06/11 Python
springboot如何初始化执行sql语句
2021/06/22 Java/Android