利用javaScript实现点击输入框弹出窗体选择信息
发布时间:2023-09-13 03:14:50
在这里奉上源代码,没有做样式处理,不过功能是可以的,希望大家可以和我交流交流!
<html>
<head>
<title>点击弹出DIV选择信息</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<input type="text" onfocus="alertDivINFO(this, 'id', 'name', true, true, 600, 300, 'arrs')" />
<div style="position: absolute;"></div>
</body>
</html>
<script type="text/javascript">
//数组信息
var arrs = new Array();
arrs.push({id:"1", name:"张三3"});
arrs.push({id:"2", name:"李四3"});
arrs.push({id:"3", name:"申午武3"});
arrs.push({id:"4", name:"周琬淞3"});
arrs.push({id:"5", name:"覃晓为3"});
arrs.push({id:"6", name:"王五"});
arrs.push({id:"7", name:"宝典3"});
/**
* obj: 点击文本框的对象
* idStr: json数组的id键名
* nameStr: json数组的name键名
* bool: true:表示追加 false:表示重新赋值
* boolSet: true:ID和Name的值都显示 false:只显示Name的值
* widthNum: 信息DIV的宽度
* heightNum: 信息DIV的高度
* arrName: 数组名称
*/
function alertDivINFO(obj, idStr, nameStr, bool, boolSet, widthNum, heightNum, arrName){
obj.blur();
if(!widthNum){
widthNum = 600;
}
if(!heightNum){
heightNum = 350;
}
//创建大的DIV
var alertDivParent = document.createElement("div");
alertDivParent.id = "alertDivParent";
with(alertDivParent.style){
top = 0;
left = 0;
position = "absolute";
background = "#EEEEEE";
filter = "alpha(opacity=70)";
opacity = 0.7;
width = Math.max(document.body.clientWidth, document.body.scrollWidth);
height = Math.max(document.body.clientHeight, document.body.scrollHeight);
}
document.body.appendChild(alertDivParent);
//创建小的DIV
var alertDiv = document.createElement("div");
alertDiv.id = "alertDiv";
with(alertDiv.style){
width = widthNum;
height = heightNum;
position = "absolute";
background = "#DDDDDD";
left = (Math.max(document.body.clientWidth, document.body.scrollWidth) - widthNum) / 2;
top = (Math.max(document.body.clientHeight, document.body.scrollHeight) - heightNum) / 2;
}
//添加到窗体
document.body.appendChild(alertDiv);
//创建搜索的DIV
var alertQueryDiv = document.createElement("div");
alertQueryDiv.id = "alertQueryDiv";
//将搜索的DIV添加到信息DIV
alertDiv.appendChild(alertQueryDiv);
alertQueryDiv.innerHTML = "搜索 名称:";
//创建文本框
var alertQueryINPUT = document.createElement("input");
alertQueryINPUT.id = "alertQueryINPUT";
alertQueryINPUT.type = "text";
//将文本框添加到搜索的DIV
alertQueryDiv.appendChild(alertQueryINPUT);
//创建搜索按钮
var alertQueryBUTTON = document.createElement("input");
alertQueryBUTTON.id = "alertQueryBUTTON";
alertQueryBUTTON.type = "button";
alertQueryBUTTON.value = " 搜 索 ";
//给按钮添加事件
alertQueryBUTTON.onclick = function(){
//计算该宽度可放多少单元格
var tdWidthNum = 130;
var tdNum = parseInt(widthNum / tdWidthNum);
var num = 0;
var j = 0;
//获取显示信息的Table
var alertInfoTab = document.getElementById("alertInfoTab");
//清空THead的信息
alertInfoTab.deleteTHead();
//循环数组
for(var i = 0; i < eval(arrName).length; i ++){
//如果与数组中的相等就添加到TABLE
if(eval(arrName + "[i]." + nameStr).indexOf(alertQueryINPUT.value) >= 0){
var header;
if(j % tdNum == 0){
header = alertInfoTab.createTHead();
header = header.insertRow(num);
num ++;
}
j ++;
var headerName = header.insertCell(-1);
with(headerName.style){
width = tdWidthNum;
color = "blue";
cursor = "pointer";
}
if(boolSet)
headerName.appendChild(document.createTextNode(eval(arrName + "[i]." + idStr) + ": " + eval(arrName + "[i]." + nameStr)));
else if(!boolSet)
headerName.appendChild(document.createTextNode(eval(arrName + "[i]." + nameStr)));
headerName.onclick = function(){
if(bool)
obj.value = obj.value + this.innerHTML + ";";
else if(!bool)
obj.value = this.innerHTML;
//移除弹出的窗体
document.body.removeChild(alertDiv);
document.body.removeChild(alertDivParent);
};
}
}
};
//将按钮添加到搜索的DIV
alertQueryDiv.appendChild(alertQueryBUTTON);
//创建清空按钮
var alertClearBUTTON = document.createElement("input");
alertClearBUTTON.id = "alertClearBUTTON";
alertClearBUTTON.type = "button";
alertClearBUTTON.value = " 清 空 ";
alertClearBUTTON.onclick = function(){
//给文本框赋空值
obj.value = "";
//移除弹出的窗体
document.body.removeChild(alertDiv);
document.body.removeChild(alertDivParent);
};
//将按钮添加到搜索的DIV
alertQueryDiv.appendChild(alertClearBUTTON);
//创建关闭按钮
var alertCancelBUTTON = document.createElement("input");
alertCancelBUTTON.id = "alertCancelBUTTON";
alertCancelBUTTON.type = "button";
alertCancelBUTTON.value = " 关 闭 ";
alertCancelBUTTON.onclick = function(){
//移除弹出的窗体
document.body.removeChild(alertDiv);
document.body.removeChild(alertDivParent);
};
//将按钮添加到搜索的DIV
alertQueryDiv.appendChild(alertCancelBUTTON);
//创建显示信息的Table
var alertInfoTab = document.createElement("table");
alertInfoTab.id = "alertInfoTab";
with(alertInfoTab.style){
margin = 20;
}
//计算该宽度可放多少单元格
var tdWidthNum = 130;
var tdNum = parseInt(widthNum / tdWidthNum);
var num = 0;
for(var i = 0; i < eval(arrName).length; i ++){
var header;
if(i % tdNum == 0){
header = alertInfoTab.createTHead();
header = header.insertRow(num);
num ++;
}
var headerName = header.insertCell(-1);
with(headerName.style){
width = tdWidthNum;
color = "blue";
cursor = "pointer";
}
//var headerType = header.insertCell(-1);
if(boolSet)
headerName.appendChild(document.createTextNode(eval(arrName + "[i]." + idStr) + ": " + eval(arrName + "[i]." + nameStr)));
else if(!boolSet)
headerName.appendChild(document.createTextNode(eval(arrName + "[i]." + nameStr)));
//headerType.appendChild(document.createTextNode("Type"));
headerName.onclick = function(){
if(bool)
obj.value = obj.value + this.innerHTML + ";";
else if(!bool)
obj.value = this.innerHTML;
//移除弹出的窗体
document.body.removeChild(alertDiv);
document.body.removeChild(alertDivParent);
};
}
//将table添加到显示信息的DIV
alertDiv.appendChild(alertInfoTab);
}
</script>


猜你喜欢
- 1、time模块(※※※※)import time #导入时间模块print(time.time()) #返回当前时间的时间戳,可用于计算程
- vue项目中在可编辑div光标位置插入内容html:<div class="mouse-move fl f12 h22 lh
- 1.下载pyinstaller并解压(可以去官网下载最新版):https://github.com/pyinstaller/pyinstal
- getpwname只能得到gid一个username。import pwdmyGroupId = pwd.getpwnam(username
- 一、ASP的平反想到ASP 很多人会说 “asp语言很蛋疼,不能面向对象,功能单一,很多东西实现不了” 等等诸如此类。 以上说法都是错误的,
- 1、简介MySQL是关系型数据库,我们在使用的时候往往会将对象的属性映射成列存储在表中,因此查询的到的结果在不做任何处理的情况下,也是一个个
- Keepalived由于在生产环境使用了mysqlcluster,需要实现高可用负载均衡,这里提供了keepalived+hap
- 描述Fashion Mnist 是一个类似于 Mnist 的图像数据集. 涵盖 10 种类别的 7 万 (6 万训练集 + 1 万测试集)
- /* 功能: 通用分页存储过程 参数: @PK varchar(50), 主键,用来排序的单一字段,空的话,
- 数据集数据集为Barcelona某段时间内的气象数据,其中包括温度、湿度以及风速等。本文将简单搭建来对风速进行预测。特征构造对于风速的预测,
- 1 端口映射举个例子来说明一下端口映射的作用。有A、B、C三台计算机,A、B互通,B、C互通,但是A、C不通,这个时候在C上开了一个Web服
- PHP 异常处理异常用于在指定的错误发生时改变脚本的正常流程。异常是什么异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程。这种情
- 想弄个截屏工具,整理一下学生错题什么的,原来用的方法是:先运行QQ,再监听键盘热键(“ctrl+alt+a”)。后来发现有些问题:需要先上Q
- 如下所示:import pandas as pd#如果需要的话,需将df中的date列转为datetimedf.date = pd.to_d
- 目前整个开发社区对AOP(Aspect Oriented Programing)推崇备至,也涌现出大量支持AOP的优秀Framework,-
- 一,问题因为我想在我的服务器上部署两个vue项目,但是vue打包后默认的项目名是dist,这样子就跟我上一个vue项目冲突了。因此查了一下资
- 随着搜索引擎大兴, 排列在前的网站引入大量流量. 无论是搜索页面的广告还是查出来的结果, 与搜索者的目标匹配度都比较高 (如果搜索引擎足够智
- 最近导师让我跑模型,生物信息方向的,我一个学计算机的,好多东西都看不明白。现在的方向大致是,用深度学习的模型预测病毒感染人类的风险。既然是病
- 观察者模式中的主题对象一般存在着一个其他服务依赖的核心服务,并且维护着其他依赖此核心服务的对象列表(即观察者或监视者列表),当主题对象发生变
- 目录abspathbasenamedirnameexistsgetatimegetctimegetsizeisabsisdirisfilei