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


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常见注意事项
Jan 01 Javascript
js 控制下拉菜单刷新的方法
Mar 03 Javascript
jQuery探测位置的提示弹窗(toolTip box)详细解析
Nov 14 Javascript
jquery 提示信息显示后自动消失的具体实现
Dec 18 Javascript
jQuery实现下拉框左右选择的简单实例
Feb 22 Javascript
js实现多选项切换导航菜单的方法
Feb 06 Javascript
JavaScript仿静态分页实现方法
Aug 04 Javascript
浅谈JS读取DOM对象(标签)的自定义属性
Nov 21 Javascript
el表达式 写入bootstrap表格数据页面的实例代码
Jan 11 Javascript
vue-cli3.0 特性解读
Apr 22 Javascript
node 解析图片二维码的内容代码实例
Sep 11 Javascript
微信小程序实现锚点跳转
Nov 23 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
启用Csrf后POST数据时出现的400错误
2015/07/05 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
2020/01/22 PHP
如何实现JS函数的重载
2006/09/22 Javascript
让getElementsByName适应IE和firefox的方法
2007/09/24 Javascript
JavaScript 创建对象和构造类实现代码
2009/07/30 Javascript
利用js获取服务器时间的两个简单方法
2010/01/08 Javascript
js正文内容高亮效果的实现方法
2013/06/30 Javascript
String.prototype实现的一些javascript函数介绍
2013/11/22 Javascript
jquery实现在页面加载完毕后获取图片高度或宽度
2014/06/16 Javascript
JavaScript前端图片加载管理器imagepool使用详解
2014/12/29 Javascript
JS长整型精度问题实例分析
2015/01/13 Javascript
使用mouse事件实现简单的鼠标经过特效
2015/01/30 Javascript
使用命令对象代替switch语句的写法示例
2015/02/28 Javascript
jquery获取css的color值返回RGB的方法
2015/12/18 Javascript
Bootstrap实现登录校验表单(带验证码)
2016/06/23 Javascript
jQuery实现花式轮播之圣诞节礼物传送效果
2016/12/25 Javascript
javaScript生成支持中文带logo的二维码(jquery.qrcode.js)
2017/01/03 Javascript
bootstrap datetimepicker日期插件超详细使用方法介绍
2017/02/23 Javascript
vue+swiper实现侧滑菜单效果
2017/12/28 Javascript
使用Javascript简单计算器
2018/11/17 Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
2019/08/07 Javascript
用云开发Cloudbase实现小程序多图片内容安全监测的代码详解
2020/06/07 Javascript
如何在vue中使用HTML 5 拖放API
2021/01/14 Vue.js
python中的编码知识整理汇总
2016/01/26 Python
Python管理Windows服务小脚本
2018/03/12 Python
Python高级特性切片(Slice)操作详解
2018/09/27 Python
Python networkx包的实现
2020/02/14 Python
完美解决ARIMA模型中plot_acf画不出图的问题
2020/06/04 Python
利用python+ffmpeg合并B站视频及格式转换的实例代码
2020/11/24 Python
如何查看python关键字
2021/01/17 Python
Python调用SMTP服务自动发送Email的实现步骤
2021/02/07 Python
沙龙级头发造型工具:FOXYBAE
2018/07/01 全球购物
自荐书格式
2013/12/01 职场文书
销售队伍口号
2014/06/11 职场文书
2014年党务公开工作总结
2014/12/09 职场文书
Python Django获取URL中的数据详解
2021/11/01 Python