微信小程序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 使用手册(六)
Sep 23 Javascript
判断iframe是否加载完成的完美方法
Jan 07 Javascript
niceTitle 基于jquery的超链接提示插件
May 31 Javascript
Javascript 八进制转义字符(8进制)
Apr 08 Javascript
基于javascript html5实现多文件上传
Mar 03 Javascript
JS版微信6.0分享接口用法分析
Oct 13 Javascript
浅谈JavaScript的函数及作用域
Dec 30 Javascript
10道典型的JavaScript面试题
Mar 22 Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
Apr 11 Javascript
微信小程序实现瀑布流布局与无限加载的方法详解
May 12 Javascript
react 创建单例组件的方法
Apr 26 Javascript
JavaScript中的宏任务和微任务详情
Nov 27 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获取远程文件大小
2015/10/20 PHP
浅谈php7的重大新特性
2015/10/23 PHP
深入理解PHP之源码目录结构与功能说明
2016/06/01 PHP
php语法检查的方法总结
2019/01/21 PHP
PHP asXML()函数讲解
2019/02/03 PHP
js对象的构造和继承实现代码
2010/12/05 Javascript
用js实现小球的自由移动代码
2013/04/22 Javascript
JavaScript实现班级随机点名小应用需求的具体分析
2014/05/12 Javascript
JavaScript将数字转换成大写中文的方法
2015/03/23 Javascript
使用iojs的jsdom库实现同步系统时间
2015/04/20 Javascript
JavaScript中的原型prototype完全解析
2016/05/10 Javascript
利用yarn实现一个webpack+react种子
2016/10/25 Javascript
Angular.JS中select下拉框设置value的方法
2017/06/20 Javascript
JavaScript操作文件_动力节点Java学院整理
2017/06/30 Javascript
jQuery 实现图片的依次加载图片功能
2017/07/06 jQuery
详解Vue.js Mixins 混入使用
2017/09/15 Javascript
Vue 项目部署到服务器的问题解决方法
2017/12/05 Javascript
js继承的这6种方式!(上)
2019/04/23 Javascript
解决vue 子组件修改父组件传来的props值报错问题
2019/11/09 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
2019/12/18 Javascript
vue实现表单未编辑或未保存离开弹窗提示功能
2020/04/08 Javascript
[39:46]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第二场 11.25
2020/11/25 DOTA
python统计一个文本中重复行数的方法
2014/11/19 Python
Python面向对象编程中的类和对象学习教程
2015/03/30 Python
Python中定时任务框架APScheduler的快速入门指南
2017/07/06 Python
python matplotlib画图库学习绘制常用的图
2019/03/19 Python
浅谈python的elementtree模块处理中文注意事项
2020/03/06 Python
Python实现对adb命令封装
2020/03/06 Python
python:HDF和CSV存储优劣对比分析
2020/06/08 Python
python入门教程之基本算术运算符
2020/11/13 Python
size?瑞典:英国伦敦的球鞋精品店
2018/03/01 全球购物
学校个人对照检查材料
2014/08/26 职场文书
党的群众路线教育实践活动批评与自我批评范文
2014/10/16 职场文书
2015年图书馆个人工作总结
2015/05/26 职场文书
解决linux下redis数据库overcommit_memory问题
2022/02/24 Redis
windows11选中自动复制怎么开启? Win11自动复制所选内容的方法
2022/07/23 数码科技