<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>AngularJs下拉搜索框</title>
<script src="http://apps.bdimg.com/libs/angular.js/1.5.0-beta.0/angular.min.js"></script>
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<style>
input,select{
width: 120px;
}
</style>
</head>
<body>
<div ng-app="app" ng-controller="indexCtrl">
<input type="text" ng-change="searchTextValueChange(searchTextValue)" ng-model="searchTextValue" ng-click="searchTextInputClick()">
<div ng-show="showSelect">
<select ng-model="selectValues" multiple>
<option ng-repeat="data in selectData" ng-click="selectOptionClick(data)">{{data}}</option>
</select>
</div>
</div>
<script>
var app = angular.module("app",[]);
app.controller("indexCtrl", function ($scope) {
$scope.selectData = ["王小明","李晓红","长着长着","你是狗么","别问,问就幸福","今天又被幸福了","快乐快乐","蛇皮狗"];
//下拉框中的数值拷贝一份
$scope.copySelectData = $scope.selectData;
//是否显示下拉框
$scope.showSelect = false;
//文本框值
$scope.searchTextValue = "";
$scope.selectValues = []; /**
* 将下拉选的数据值赋值给文本框,并且隐藏下拉框
*/
$scope.selectOptionClick = function (selectValue) {
//因为加了多选属性防止多选点击置空数组再加数据 //不加multiple多选属性不现实下拉范围
$scope.selectValues = [];
$scope.selectValues.push(selectValue);
$scope.showSelect = false; //下拉框隐藏
$scope.searchTextValue = $scope.selectValues[0]; //文本框中的值 };
/**
* 获取的数据值与下拉选逐个比较,如果包含则放在临时变量副本,并用临时变量副本替换下拉选原先的数值,如果数据为空或找不到,就用初始下拉选项副本替换
*/
$scope.searchTextValueChange = function (searchTextValue) {
if(searchTextValue === "" || searchTextValue === undefined){
$scope.selectData = $scope.copySelectData;
return;
}
//正则匹配,不是中文不筛选数据
if(new RegExp("[^\\u4E00-\\u9FA5]+").test(searchTextValue)){
return;
}
var newData = []; //创建一个临时下拉框副本
angular.forEach($scope.selectData, function (data) {
if (data.indexOf(searchTextValue)>=0){
newData.push(data);
}
});
$scope.selectData = newData; //newData中的数值赋值给$scope.selectData
};
/**
* 搜索输入框点击事件
*/
$scope.searchTextInputClick = function () {
if($scope.selectData.length>1){
$scope.showSelect = true;
}
};
})
</script>
</body>
</html>

angularjs select下拉搜索框的更多相关文章

  1. CSS自定义select下拉选择框(不用其他标签模拟)

    今天群里有人问到怎么自定义select下拉选择框的样式,于是群里就展开了激烈的讨论,刚开始一直就是考虑怎样使用纯CSS实现,把浏览器默认的样式覆盖掉,但最后均因兼容问题处理不好而失败告终,最后的解决方 ...

  2. 微信小程序之自定义select下拉选项框组件

    知识点:组件,animation,获取当前点击元素的索引与内容 微信小程序中没有select下拉选项框,所以只有自定义.自定义的话,可以选择模板的方式,也可以选择组件的方式来创建. 这次我选择了组件, ...

  3. [jQueryUI] – Chosen:select下拉选择框美化插件及问题

    Chosen 是一个支持jquery的select下拉框美化插件,它能让丑陋的.很长的select选择框变的更好看.更方便.不仅如此,它更扩展了select,增加了自动筛选的功能.它可对列表进行分组, ...

  4. WeChat-SmallProgram:自定义select下拉选项框组件

    1):创建组件所需的文件 2):自定义组件 CSS 及 JS 组件的wxml: <view class='com-selectBox'> <view class='com-sCont ...

  5. 类似select下拉选择框同时又支持手动输入的元素 datalist 介绍。

    有时候我们会有这样的需求,通过使用下拉菜单给用户一定的选择范围,同时又可以使用户在找不到选择项的时候手动输入.这个时候我们就需要用到html5的datalist属性了. datalist包含<o ...

  6. select下拉选框的默认值,包括每次进入页面的默认值

    下拉选: <select onchange="selectTotal(this.value)" style="width: 50px;">      ...

  7. angularJS select下拉框检测改变

    html:(已引入amazeUI) <div style="width:70px;display:inline-block;"> <form class=&quo ...

  8. DOM操作表单(select下拉选框)

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  9. jsp页面数据回显(select下拉选择框)

    1.静态变量方式: <!-- 实现select标签回显 --> 1.<select name="curStatus" value="${curStatu ...

随机推荐

  1. [转]OData and Authentication – Part 6 – Custom Basic Authentication

    本文转自:https://blogs.msdn.microsoft.com/astoriateam/2010/07/21/odata-and-authentication-part-6-custom- ...

  2. unity assetStore 常用插件

    常用插件 20180723============= 教程类 =============<Mecanim Example Scenes > 官方示例场景<Surivial Shoot ...

  3. 高并发系列之——MQ消息中间件Kafka

    1.前言 1.1 包路径和源码 下载链接 基于发布订阅的分布式消息系统,使用scala语言编写. 特点:采用分区机制,每个分区可以放到不同的服务器上,提高了吞吐率,同时基于磁盘存储,以及副本机制可以确 ...

  4. Ubuntu16.04(Linux)安装JDK

    Ubuntu 安装JDK的两种方式: 1:通过ppa(源) 方式安装. 2:通过官网下载安装包安装. 第1种,因为可以通过 apt-get upgrade 方式方便获得jdk的升级 第一种:使用ppa ...

  5. div实现水平和垂直都居中的三个超实用的方法

    本文仅仅介绍作者认为的三种不错的方式, 方式一:transform: translate(-50%,-50%)  示例代码如下: .div{ position: absolute; top: 50%; ...

  6. HTML contenteditable 属性

    contenteditable 属性是 HTML5 中的新属性,所有的主流浏览器都支持 contenteditable 属性. contenteditable 属性规定了元素内容是否可编辑. * 如果 ...

  7. ArcGIS10.x Engine直连提示连接超时ORA-12170 来自:http://www.iarcgis.com/?p=1004

    导语 随着Esri大力宣传直连,用户也越来越由服务连接,改为直连,当然ArcGIS Engine开发用户也不例外. 环境 Oracle数据库,ArcGIS版本不限,不过由于9版本多以服务连接,以10版 ...

  8. C++学习笔记(7)----类的数组中构造函数和析构函数的调用顺序

    C++类的数组中构造函数和析构函数的调用顺序(2) 对于如下的代码: #include<iostream> using namespace std; class CBase { priva ...

  9. Intelij IDEA 配置Tomcat时找不到 “Application Server”

    由于公司突然断电,再打开idea的时候,tomcat就消失了.然后在网上搜了一下,没搜到自己乱点了一下. 如图 : plugins >>   application servers Vie ...

  10. SQL SERVER占用CPU过高优化S

    https://www.cnblogs.com/yuekong2010/p/6628001.html 然后使用下面语句看一下各项指标是否正常,是否有阻塞,正常情况下搜索结果应该为空. 1 SELECT ...