微信小程序实现搜索框功能及踩过的坑


Posted in Javascript onJune 19, 2020

先上代码:

wxml:

<!-- 顶部搜索框 -->
<view class="inputcontainer">
 <view class="input" catchtap="inputSwitchStatus" wx:if="{{!edit}}">搜索商品</view>
 <view class="edit" wx:else>
  <form bindsubmit="inputSearch" bindreset="inputReset">
  <text class="searchicon"></text>
  <input focus="true" type="text" name="search-input" confirm-type='search' bindconfirm="inputSearch"/>
  <button class="deleteicon cancel-btn-default-style" catchtap="inputReset" hover-class="clear-btn-hover" formType="reset"></button>
  <button class="cancel cancel-btn-default-style" hover-class="search-btn-hover" formType="submit">搜索</button>
  </form>  
 </view> 
</view>

效果:

 微信小程序实现搜索框功能及踩过的坑 

上面两张图片分别是搜索框的两种状态,非搜索状态和搜索状态,样式很简单,逻辑也不复杂,但是小程序的搜索和网页的不一样,网页可以直接添加点击事件但是,小程序不行,因为小程序的搜索和输入分开,如果使用data-的话无疑会产生很多多余的代码,庆幸的是小程序提供了form可以整合搜索和输入,具体和已参考官方API。
本文主要讲的是踩过的坑,
①搜索和重置必须使用按钮,因为要使用button的formType。
②搜索事件和重置事件是绑定到form上的,而不是button。
③input必须添加一个name属性,例如name=”search-input”,否则你是用e.detail.value是取不到值的
④confirm-type='search'是控制你的软键盘的右下角显示的文字
⑤到目前为止你的搜索按钮可以正常使用,但是点击的软键盘的搜索按钮,没有任何效果,如果想要软键盘的搜索按钮同样可以使用,首先在输入框中添加indconfirm=”inputSearch”事件,然后测试你会发现,现在依然无法使用,但是却使用了函数,这是因为当你使用软键盘进行搜索时,获取的值的方式是e.detail.value就可以而不是e.detail.value‘search-input',所以你需要修改一下你的搜索函数:

inputSearch: function (e) { //输入框根据查询条件搜索点击事件
 // 获取用户输入框中的值
 let inputVaue = e.detail.value['search-input'] ? e.detail.value['search-input'] : e.detail.value;
 if (!inputVaue) {
  throw new Error('search input contents con not empty!');
  return ;
 }
 let searchUrl = "/product/index?keyword=" + inputVaue + "&fromindex=true";
 this.converterUrlAndRedirect(searchUrl);
 }

注意:

let inputVaue = e.detail.value[‘search-input'] ? e.detail.value[‘search-input'] : e.detail.value;
,现在你的小程序搜索框可以使用了。

另外有一个布局问题,ios的小程序对position: fixed;很不友好,所有尽量使用position: absolute;代替它

总结

到此这篇关于微信小程序实现搜索框功能及踩过的坑的文章就介绍到这了,更多相关微信小程序实现搜索框内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
在页面上点击任一链接时触发一个事件的代码
Apr 07 Javascript
用js模拟JQuery的show与hide动画函数代码
Sep 20 Javascript
JavaScript计算某一天是星期几的方法
Aug 05 Javascript
JS中dom0级事件和dom2级事件的区别介绍
May 05 Javascript
Javascript 判断两个IP是否在同一网段实例代码
Nov 28 Javascript
JavaScript实现数组降维详解
Jan 05 Javascript
AngularJS监听路由变化的方法
Mar 07 Javascript
Vue.js学习记录之在元素与template中使用v-if指令实例
Jun 27 Javascript
Node.js文件编码格式的转换的方法
Apr 27 Javascript
浅谈Vue初学之props的驼峰命名
Jul 19 Javascript
layer弹窗在键盘按回车将反复刷新的实现方法
Sep 25 Javascript
node.js基于dgram数据报模块创建UDP服务器和客户端操作示例
Feb 12 Javascript
微信小程序返回上一级页面的实现代码
Jun 19 #Javascript
小程序中的箭头函数的具体使用
Jun 19 #Javascript
在VUE style中使用data中的变量的方法
Jun 19 #Javascript
深入分析JavaScript 事件循环(Event Loop)
Jun 19 #Javascript
原生JS实现微信通讯录
Jun 18 #Javascript
vue+element-ui表格封装tag标签使用插槽
Jun 18 #Javascript
js实现ajax的用户简单登入功能
Jun 18 #Javascript
You might like
PHP函数实现分页含文本分页和数字分页
2014/10/23 PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
2016/06/13 PHP
PHP安装memcache扩展的步骤讲解
2019/02/14 PHP
通过JavaScript控制字体大小的代码
2011/10/04 Javascript
JS图片预加载 JS实现图片预加载应用
2012/12/03 Javascript
利用百度地图JSAPI生成h7n9禽流感分布图实现代码
2013/04/15 Javascript
jQuery选择器querySelector的使用指南
2015/01/23 Javascript
JavaScript中的setUTCDate()方法使用详解
2015/06/11 Javascript
js模拟淘宝网的多级选择菜单实现方法
2015/08/18 Javascript
js前端面试题及答案整理(一)
2016/08/26 Javascript
对js中回调函数的一些看法
2016/08/29 Javascript
利用JS实现点击按钮后图片自动切换的简单方法
2016/10/24 Javascript
详解利用exif.js解决ios手机上传竖拍照片旋转90度问题
2016/11/04 Javascript
Angular.js通过自定义指令directive实现滑块滑动效果
2017/10/13 Javascript
Node.js+ELK日志规范的实现
2019/05/23 Javascript
Vue循环中多个input绑定指定v-model实例
2020/08/31 Javascript
[02:03]DOTA2亚洲邀请赛 HGT战队出场宣传片
2015/02/07 DOTA
python网络编程学习笔记(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)
2014/06/09 Python
python中PIL安装简单教程
2016/04/21 Python
Python实现优先级队列结构的方法详解
2016/06/02 Python
python 调用HBase的简单实例
2016/12/18 Python
python: line=f.readlines()消除line中\n的方法
2018/03/19 Python
opencv设置采集视频分辨率方式
2019/12/10 Python
Python实现投影法分割图像示例(一)
2020/01/17 Python
使用JS+CSS3技术:让你的名字动起来
2013/04/27 HTML / CSS
伦敦一家西班牙童装精品店:La Coqueta
2018/02/02 全球购物
EJB的角色和三个对象
2015/12/31 面试题
社区工作者演讲稿
2014/05/23 职场文书
销售人员求职信
2014/07/22 职场文书
小学生自我评价100字(15篇)
2014/09/18 职场文书
免职证明样本
2014/10/23 职场文书
2014年法务工作总结
2014/12/11 职场文书
晚会闭幕词
2015/01/28 职场文书
优秀大学生自荐信
2015/03/26 职场文书
2015年企业员工工作总结范文
2015/05/21 职场文书
微信小程序基础教程之echart的使用
2021/06/01 Javascript