微信小程序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 相关文章推荐
关于 byval 与 byref 的区别分析总结
Oct 08 Javascript
javascript xml为数据源的下拉框控件
Jul 07 Javascript
JavaScript Event学习第六章 事件的访问
Feb 07 Javascript
javascript读写json示例
Apr 11 Javascript
jquery 页眉单行信息滚动显示实现思路及代码
Jun 26 Javascript
Js数组排序函数sort()介绍
Jun 08 Javascript
深入解析JavaScript中的数字对象与字符串对象
Oct 21 Javascript
Javascript基础之数组的使用
May 13 Javascript
Angular-Touch库用法示例
Dec 22 Javascript
vue实现在线预览pdf文件和下载(pdf.js)
Nov 26 Javascript
vue实现购物车选择功能
Jan 10 Javascript
Vue文本模糊匹配功能如何实现
Jul 30 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 什么是PEAR?
2009/03/19 PHP
自动把纯文本转换成Web页面的php代码
2009/08/27 PHP
PHP编程函数安全篇
2013/01/08 PHP
PHP连接MySQL数据的操作要点
2015/03/20 PHP
用javascript实现分割提取页面所需内容
2007/05/09 Javascript
超棒的javascript页面顶部卷动广告效果
2007/12/01 Javascript
用于判断用户注册时,密码强度的JS代码
2009/01/01 Javascript
JavaScript设置FieldSet展开与收缩
2009/05/15 Javascript
使用Raygun对Node.js应用进行错误处理的方法
2015/06/23 Javascript
JS实现双击屏幕滚动效果代码
2015/10/28 Javascript
javascript数据结构之双链表插入排序实例详解
2015/11/25 Javascript
初识angular框架后的所思所想
2016/02/19 Javascript
JavaScript正则表达式实例详解
2016/10/16 Javascript
微信小程序图片选择、上传到服务器、预览(PHP)实现实例
2017/05/11 Javascript
vue.js 左侧二级菜单显示与隐藏切换的实例代码
2017/05/23 Javascript
JS判断Android、iOS或浏览器的多种方法(四种方法)
2017/06/29 Javascript
angular中不同的组件间传值与通信的方法
2017/11/04 Javascript
详解vue-cli 接口代理配置
2017/12/13 Javascript
详解小程序退出页面时清除定时器
2019/04/28 Javascript
react quill中图片上传由默认转成base64改成上传到服务器的方法
2019/10/30 Javascript
Javascript执行上下文顺序的深入讲解
2020/11/04 Javascript
Python通过select实现异步IO的方法
2015/06/04 Python
Python采用Django开发自己的博客系统
2020/09/29 Python
Python利用Beautiful Soup模块创建对象详解
2017/03/27 Python
Python利用flask sqlalchemy实现分页效果
2020/08/02 Python
Python OpenCV 直方图的计算与显示的方法示例
2018/02/08 Python
python 2.7.14安装图文教程
2018/04/08 Python
Python实现Linux监控的方法
2019/05/16 Python
详解python内置常用高阶函数(列出了5个常用的)
2020/02/21 Python
基于python实现对文件进行切分行
2020/04/26 Python
浅谈CSS3中display属性的Flex布局的方法
2017/08/14 HTML / CSS
请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1
2015/07/16 面试题
儿科护士自我鉴定
2013/10/14 职场文书
学生安全教育材料
2014/02/14 职场文书
纪念九一八事变演讲稿:牢记历史,捍卫主权
2014/09/14 职场文书
python中的plt.cm.Paired用法说明
2021/05/31 Python