<!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. 初识DataGridView 表格数据控件

    DataGridView控件提供了一种强大而灵活的以表格形式显示数据的方式,用户可以使用DataGridView控件来显示少量数据的只读视图,也可以对其进行缩放以显示特大数据集的可编辑视图. 扩展Da ...

  2. MySQL---1、介绍

    一.MySQL简介 1.MySQL简介 MySQL是一个轻量级关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司.目前MySQL被广泛地应用在Internet上的中小型网站 ...

  3. 如鹏网学习笔记(十五)ASP.NET MVC核心基础笔记

    一.ASP.Net MVC简介 1,什么是ASP.NET MVC? HttpHandler是ASP.net的底层机制,如果直接使用HttpHandler进行开发难度比较大.工作量大.因此提供了ASP. ...

  4. 二:SpringCloud-Eureka

    五:Eureka服务注册与发现 1. 是什么 Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现==服务注册和发现==(请对比Zookeeper). Eureka ...

  5. C# 调用C/C++动态链接库,结构体中的char*类型

    用C#掉用C++的dll直接import就可以之前有不同的类型对应,当要传递结构体的时候就有点麻烦了,这里有一个结构体里边有char*类型,这个类型在C#中调用没法声明,传string是不行的默认st ...

  6. Zookeeper JAVA API的使用

    0. 前言 zookeeper安装及使用  http://www.cnblogs.com/rocky-fang/p/7880309.html 1. 开发环境配置 1.1 idea创建一个maven工程 ...

  7. ThreeJs 选中物体事件

    选中物体变红色demo: https://threejs.org/examples/#webgl_raycast_sprite <!DOCTYPE html> <html lang= ...

  8. drupal中安装CKEditor文本编辑器,并配置图片上传功能 之 方法二

    drupal中安装CKEditor文本编辑器,并配置图片上传功能 之 方法一 中介绍了ckeditor的安装和配置方法,其实还有另一种新方法,不用IMCE模块. 不过需要ckfinder的JS库,可以 ...

  9. Install Java JDK JRE on Ubuntu/Debian with Apt-Get

    Introduction As a lot of articles and programs require to have Java installed, this article will gui ...

  10. Android内存管理-OnTrimMemory

    Application中有两个与内存管理相关的方法:onLowMemory()和 onTrimMemory(int level),源码如下 @CallSuper public void onLowMe ...