weui 搜索框的使用

Posted HackShendi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了weui 搜索框的使用相关的知识,希望对你有一定的参考价值。

Hello, I’m Shendi

最近需要使用到搜索框,搜索框输入内容后出现提示内容,于是选用了 weui 的搜索框

对于 DOM 的操作,我使用的 vue,没有用到 vue 的也可以自己使用js手动循环生成 DOM

效果



引入库

<!-- weui -->
<link rel="stylesheet" href="https://res.wx.qq.com/open/libs/weui/2.0.1/weui.min.css">
<script type="text/javascript" src="https://res.wx.qq.com/t/wx_fed/cdn_libs/res/weui/1.2.3/weui.min.js"></script>

搜索框

<!-- 其中 v 开头的属性都是 vue 的语法 -->
<div id='search'>
	<div class="weui-search-bar" id="searchBar">
		<form id="searchForm" action='提交的地址' role="combobox" aria-haspopup="true" aria-expanded="false" aria-owns="searchResult" class="weui-search-bar__form">
			<div class="weui-search-bar__box">
				<i class="weui-icon-search"></i>
				<input id="searchInput" name='表单提交的属性名称' type="search" autoComplete="off" aria-controls="searchResult" class="weui-search-bar__input" placeholder="搜索" required/>
				<a href="javascript:" role="button" title="清除" class="weui-icon-clear" id="searchClear"></a>
			</div>
			<label for="searchInput" class="weui-search-bar__label" id="searchText">
				<i class="weui-icon-search"></i>
				<span aria-hidden="true">请输入你想搜索的内容</span>
			</label>
		</form>
		<a href="javascript:" role="button" class="weui-search-bar__cancel-btn" id="searchCancel">取消</a>
	</div>
	<!-- 搜索的匹配内容列表 -->
	<div role="listbox" class="weui-cells searchbar-result" id="searchResult">
		<!-- 具体内容,没有使用到 vue 的可以通过 dom 循环 appendChild 的方式 -->
		<div v-for='result in searchResult' v-on:click="search(result)" role="option" class="weui-cell weui-cell_active weui-cell_access">
			<div class="weui-cell__bd weui-cell_primary">
				<p> result </p>
			</div>
		</div>
	</div>
</div>

初始化

接下来在 js 中初始化

要先引入库

/********** 搜索框部分 **********/
// 此处是 vue 部分
var search = new Vue(
    el : "#search",
    data : 
        // 搜索框所匹配的结果列表
        searchResult : [],
    ,
    methods: 
        /** 关键词被点击直接搜索 */
        search : function (key) 
            $("#searchInput").val(key);
            $("#searchForm")[0].submit();
        
    
);

// 没有使用到vue的使用这一部分即可
// 初始化 weui 搜索框,只能在vue后执行,否则无效果
weui.searchBar('#searchBar');
$("#searchInput")[0].oninput = function () 
    var key = $("#searchInput").val();
    if (key != "") 
    	// 执行 ajax 获取匹配的数据填充搜索框内容,这里可以自行使用 jquery 的 ajax 等
        sw.$(
            url : "url",
            success : function (data) 
                var result = sw.tojson(data);
                search.searchResult = result;
            
        );
     else 
        search.searchResult = [];
    
;
// 当搜索框有修改时隐藏提示内容
$("#searchInput").change(function ()  setTimeout(function () search.searchResult = [];, 100); );

css 部分,可以自行更改

/** 搜索框样式部分 */
#search 
	margin: 12px 0;
	position: relative;

#searchResult 
	position: absolute;
    z-index: 1;
    width: 100%;

.weui-search-bar
	background-color: #f7f7f9!important;
	border-radius: 22px;

.weui-search-bar__form 
	background-color: #f7f7f9!important;

.weui-search-bar__label 
	background: #f7f7f9!important;

.weui-cells:after, .weui-cells:before 
	content: none!important;

.weui-cell:before 
	left: 12px!important;
	right: 12px!important;

以上是关于weui 搜索框的使用的主要内容,如果未能解决你的问题,请参考以下文章

weui 搜索框的使用

weui 搜索框的使用

仿微信的搜索功能

weui 搜索框

WeUI框架

微信企业号两种常用搜索加载方式