微信小程序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 相关文章推荐
一个简单的jQuery插件制作 学习过程及实例
Apr 25 Javascript
js的逻辑运算符 ||
May 31 Javascript
IE下使用jQuery重置iframe地址时内存泄露问题解决办法
Feb 05 Javascript
JavaScript数组前面插入元素的方法
Apr 06 Javascript
浅谈javascript实现八大排序
Apr 27 Javascript
JavaScript学习笔记之创建对象
Mar 25 Javascript
JQuery 选择器、DOM节点操作练习实例
Sep 28 jQuery
vue+element-ui动态生成多级表头的方法
Aug 28 Javascript
javascript实现计算指定范围内的质数示例
Dec 29 Javascript
重学JS之显示强制类型转换详解
Jun 30 Javascript
详解node和ES6的模块导出与导入
Feb 19 Javascript
vue-router路由懒加载及实现的3种方式
Feb 28 Vue.js
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 mysql 判断update之后是否更新了的方法
2012/01/10 PHP
PHP实现通过strace定位故障原因的方法
2018/04/29 PHP
如何取得中文输入的真实长度?
2006/06/24 Javascript
共享自己写一个框架DreamScript
2007/01/20 Javascript
jQuery侧边栏随窗口滚动实现方法
2013/03/04 Javascript
简单的代码实现jquery定时器
2014/01/03 Javascript
浅谈JavaScript中Date(日期对象),Math对象
2015/02/05 Javascript
JavaScript中constructor()方法的使用简介
2015/06/05 Javascript
js实现点击切换TAB标签实例
2015/08/21 Javascript
JavaScript实现数据类型的相互转换
2016/03/06 Javascript
基于js中的原型、继承的一些想法
2016/08/10 Javascript
JS实现滑动门效果的方法详解
2016/12/19 Javascript
Vue 2.0的数据依赖实现原理代码简析
2017/07/10 Javascript
JS Object.preventExtensions(),Object.seal()与Object.freeze()用法实例分析
2018/08/25 Javascript
浅谈vue方法内的方法使用this的问题
2018/09/15 Javascript
Vue中使用vux配置代码详解
2018/09/16 Javascript
详解用vue2.x版本+adminLTE开源框架搭建后台应用模版
2019/03/15 Javascript
Vue 实现从文件中获取文本信息的方法详解
2019/10/16 Javascript
windows如何把已安装的nodejs高版本降级为低版本(图文教程)
2020/12/14 NodeJs
[01:53]3.19 DOTA2发布会 现场精彩Coser表演
2014/03/25 DOTA
Python操作MySQL数据库9个实用实例
2015/12/11 Python
Python创建二维数组实例(关于list的一个小坑)
2017/11/07 Python
Ubuntu下升级 python3.7.1流程备忘(推荐)
2018/12/10 Python
Python PyCharm如何进行断点调试
2019/07/05 Python
Python获取命令实时输出-原样彩色输出并返回输出结果的示例
2019/07/11 Python
Django框架自定义模型管理器与元选项用法分析
2019/07/22 Python
Python ORM编程基础示例
2020/02/02 Python
python+selenium 脚本实现每天自动登记的思路详解
2020/03/11 Python
python nohup 实现远程运行不宕机操作
2020/04/16 Python
python smtplib发送多个email联系人的实现
2020/10/09 Python
css3 pointer-events 介绍详解
2017/09/18 HTML / CSS
html5写一个BUI折叠菜单插件的实现方法
2019/09/11 HTML / CSS
周生生珠宝香港官网:Chow Sang Sang(香港及海外配送)
2019/09/05 全球购物
幼儿园家长会欢迎词
2014/01/09 职场文书
关于迟到的检讨书
2014/01/26 职场文书
田径运动会通讯稿
2015/07/18 职场文书