利用js实现输入框动态提示信息
2018-01-15 20:43
633 查看
http://blog.csdn.net/linzhiqiang0316/article/details/51969040
为了提高和用户的交互性,现在的输入框往往都采用输入信息自动提示的功能,类似于百度输入框中的提示功能。
设计思路是:在输入框input的组件下面放置一个div,这个div主要是为了提示信息的展示功能,类似于下拉框那种形式。
步骤一:在网页加载的时候会首先把输入框中要查询的信息全部加载出来,并且放置在一个全局变量中。
步骤二:当用户在输入框中输入信息的时候会触发响应函数,函数的主要功能是获取用户的输入值并继续监控用户后续的输入值,然后把输入值进行处理,于缓存中的全局变量进行对比操作,把缓存中相同的部分返回给上面提到过的div,div中就显示了和用户输入条件相类似的信息,提供用户选择。
步骤三:用户在菜单中选择自己想要的信息,通过js代码实现将选择的信息返回到输入框中去。
大体的设计思路就是这样,现在看看具体的例子:
1.菜单显示的样式信息:
[html] view plain copy
.auto_hidden {
width:204px;
border-top: 1px solid #333;
border-bottom: 1px solid #333;
border-left: 1px solid #333;
border-right: 1px solid #333;
position:absolute;
display:none;
}
.auto_show {
width:204px;
border-top: 1px solid #333;
border-bottom: 1px solid #333;
border-left: 1px solid #333;
border-right: 1px solid #333;
position:absolute;
z-index:9999; /* 保证页面在最前端*/
display:block;
height:100px;
overflow:auto
}
.auto_onmouseover{
color:#ffffff;
background-color:highlight;
width:100%;
}
.auto_onmouseout{
color:#000000;
width:100%;
background-color:#ffffff;
}
2.js部分的处理代码:
[html] view plain copy
var Bind = function(object, fun) {
return function() {
return fun.apply(object, arguments);
}
}
function AutoComplete(obj,autoObj,arr){
this.obj=document.getElementById(obj); //输入框
this.autoObj=document.getElementById(autoObj);//DIV的根节点
this.value_arr=arr; //不要包含重复值
this.index=-1; //当前选中的DIV的索引
this.search_value=”“; //保存当前搜索的字符
}
AutoComplete.prototype={
//初始化DIV的位置
init: function(){
this.autoObj.style.left = this.obj.offsetLeft + “px”;
this.autoObj.style.top = this.obj.offsetTop + this.obj.offsetHeight + “px”;
this.autoObj.style.width= this.obj.offsetWidth - 2 + “px”;//减去边框的长度2px
},
//删除自动完成需要的所有DIV
deleteDIV: function(){
while(this.autoObj.hasChildNodes()){
this.autoObj.removeChild(this.autoObj.firstChild);
}
this.autoObj.className=”auto_hidden”;
},
//设置值
setValue: function(_this){
return function(){
_this.obj.value=this.seq;
_this.autoObj.className=”auto_hidden”;
}
},
//模拟鼠标移动至DIV时,DIV高亮
autoOnmouseover: function(_this,_div_index){
return function(){
_this.index=_div_index;
var length = _this.autoObj.children.length;
for(var j=0;j
为了提高和用户的交互性,现在的输入框往往都采用输入信息自动提示的功能,类似于百度输入框中的提示功能。
设计思路是:在输入框input的组件下面放置一个div,这个div主要是为了提示信息的展示功能,类似于下拉框那种形式。
步骤一:在网页加载的时候会首先把输入框中要查询的信息全部加载出来,并且放置在一个全局变量中。
步骤二:当用户在输入框中输入信息的时候会触发响应函数,函数的主要功能是获取用户的输入值并继续监控用户后续的输入值,然后把输入值进行处理,于缓存中的全局变量进行对比操作,把缓存中相同的部分返回给上面提到过的div,div中就显示了和用户输入条件相类似的信息,提供用户选择。
步骤三:用户在菜单中选择自己想要的信息,通过js代码实现将选择的信息返回到输入框中去。
大体的设计思路就是这样,现在看看具体的例子:
1.菜单显示的样式信息:
[html] view plain copy
.auto_hidden {
width:204px;
border-top: 1px solid #333;
border-bottom: 1px solid #333;
border-left: 1px solid #333;
border-right: 1px solid #333;
position:absolute;
display:none;
}
.auto_show {
width:204px;
border-top: 1px solid #333;
border-bottom: 1px solid #333;
border-left: 1px solid #333;
border-right: 1px solid #333;
position:absolute;
z-index:9999; /* 保证页面在最前端*/
display:block;
height:100px;
overflow:auto
}
.auto_onmouseover{
color:#ffffff;
background-color:highlight;
width:100%;
}
.auto_onmouseout{
color:#000000;
width:100%;
background-color:#ffffff;
}
2.js部分的处理代码:
[html] view plain copy
var Bind = function(object, fun) {
return function() {
return fun.apply(object, arguments);
}
}
function AutoComplete(obj,autoObj,arr){
this.obj=document.getElementById(obj); //输入框
this.autoObj=document.getElementById(autoObj);//DIV的根节点
this.value_arr=arr; //不要包含重复值
this.index=-1; //当前选中的DIV的索引
this.search_value=”“; //保存当前搜索的字符
}
AutoComplete.prototype={
//初始化DIV的位置
init: function(){
this.autoObj.style.left = this.obj.offsetLeft + “px”;
this.autoObj.style.top = this.obj.offsetTop + this.obj.offsetHeight + “px”;
this.autoObj.style.width= this.obj.offsetWidth - 2 + “px”;//减去边框的长度2px
},
//删除自动完成需要的所有DIV
deleteDIV: function(){
while(this.autoObj.hasChildNodes()){
this.autoObj.removeChild(this.autoObj.firstChild);
}
this.autoObj.className=”auto_hidden”;
},
//设置值
setValue: function(_this){
return function(){
_this.obj.value=this.seq;
_this.autoObj.className=”auto_hidden”;
}
},
//模拟鼠标移动至DIV时,DIV高亮
autoOnmouseover: function(_this,_div_index){
return function(){
_this.index=_div_index;
var length = _this.autoObj.children.length;
for(var j=0;j
相关文章推荐
- 利用js实现输入框动态提示信息
- 利用JS弹出层实现简单的动态提示“正在加载中,请稍等...”
- js实现动态控件提示信息模版
- 利用JS弹出层实现简单的动态提示“正在加载中,请稍等...”
- 利用Angularjs和原生JS分别实现动态效果的输入框
- CSS圆角,输入框提示信息,JS查找同级元素
- js实现tooltip动态提示效果(文字版)
- vue.js 利用SocketCluster实现动态添加数据及排序
- [原创] [WEB/JavaScript] 用JavaScript实现自定义控件 --- (1)显示提示信息的输入框
- js动态提示输入框剩余字符数
- jquery 简短几句代码实现给元素动态添加及获取提示信息
- 利用js-对象实现简单的动态论坛页面
- 浅谈如何利用PB实现树型列表动态半透明提示(三)(原
- [转]单纯使用CSS实现动态提示信息
- 利用PHP+JS实现搜索自动提示(实例)
- html5配合css3实现带提示文字的输入框(摆脱js)
- JS实现输入框类似百度搜索的智能提示效果
- 浅谈如何利用PB实现树型列表动态半透明提示(原创)
- 浅谈如何利用PB实现树型列表动态半透明提示(二)(原