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


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 相关文章推荐
Javascript操纵Cookie实现购物车程序
Nov 23 Javascript
javascript form 验证函数 弹出对话框形式
Jun 23 Javascript
Dojo 学习要点
Sep 03 Javascript
使用jQuery实现的网页版的个人简历(可换肤)
Apr 19 Javascript
JavaScript知识点总结(十一)之js中的Object类详解
May 31 Javascript
有关jQuery中parent()和siblings()的小问题
Jun 01 Javascript
JS实现n秒后自动跳转的两种方法
Nov 30 Javascript
解决mpvue + vuex 开发微信小程序vuex辅助函数mapState、mapGetters不可用问题
Aug 03 Javascript
详解可以用在VS Code中的正则表达式小技巧
May 14 Javascript
vue 查看dist文件里的结构(多种方式)
Jan 17 Javascript
解决vue scoped html样式无效的问题
Oct 24 Javascript
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
Mar 01 Vue.js
微信小程序返回上一级页面的实现代码
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(5) 类和对象
2010/02/16 PHP
PHP微信公众号自动发送红包API
2016/06/01 PHP
11款新鲜的jQuery插件[附所有demo下载]
2011/01/24 Javascript
jQuery源码分析-05异步队列 Deferred 使用介绍
2011/11/14 Javascript
jquery 实现窗口的最大化不论什么情况
2013/09/03 Javascript
Jquery 模拟用户点击超链接或者按钮的方法
2013/10/25 Javascript
javascript确认框的三种使用方法
2013/12/17 Javascript
JS实现清除指定cookies的方法
2014/09/20 Javascript
快速学习JavaScript的6个思维技巧
2015/10/13 Javascript
纯JavaScript代码实现文本比较工具
2016/02/17 Javascript
jquery实现点击弹出可放大居中及关闭的对话框(附demo源码下载)
2016/05/10 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
2016/06/06 Javascript
ES6中Class类的静态方法实例小结
2017/10/28 Javascript
jquery ajaxfileupload异步上传插件
2017/11/21 jQuery
Bootbox将后台JSON数据填充Form表单的实例代码
2018/09/10 Javascript
详解webpack4之splitchunksPlugin代码包分拆
2018/12/04 Javascript
小程序实现左右来回滚动字幕效果
2018/12/28 Javascript
从0到1搭建element后台框架优化篇(打包优化)
2019/05/12 Javascript
layui的布局和表格的渲染以及动态生成表格的方法
2019/09/18 Javascript
原生js+ajax分页组件
2020/01/30 Javascript
[58:00]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第二场 2月7日
2021/03/11 DOTA
详解python的数字类型变量与其方法
2016/11/20 Python
python中的二维列表实例详解
2018/06/19 Python
python 将print输出的内容保存到txt文件中
2018/07/17 Python
Python使用tkinter模块实现推箱子游戏
2019/10/08 Python
python实现高斯判别分析算法的例子
2019/12/09 Python
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
2020/06/12 Python
AmazeUI图片轮播效果的示例代码
2020/08/20 HTML / CSS
韩国乐天网上商城:Lotte iMall
2021/02/03 全球购物
简历中的自我评价范文
2014/02/05 职场文书
2014年人事专员工作总结
2014/11/19 职场文书
大学生就业推荐表自我评价
2015/03/02 职场文书
停电通知范文
2015/04/16 职场文书
村级干部党员公开承诺事项
2015/05/04 职场文书
西游记读书笔记
2015/06/25 职场文书
JavaScript实现两个数组的交集
2022/03/25 Javascript