javascript实现自动添加文本框功能
转自:http://www.cnblogs.com/damonlan/archive/2011/08/03/2126046.html
昨天,我们公司的网络小组决定为公司做一个内部的网站,主要是为员工比如发布公告啊、填写相应信息、投诉、问题等等需求。我那同事给了我以下需求:
1.点击一个按钮 就增加一个文本框。
2.把新建的文本框的名字命名为 questions[1] ,questions[2],questions[3]....这种形式。
3.可以删除,每次删除最后一个。
4.变色功能。就是当鼠标移入到一个文本框的时候,当前背景色自动的变成灰色。
其他 以后扩展再说。
先不说,上图为好,下面就是最终实现的效果。

整个过程不算太难理解,就是昨天晚上在整那个左边系号的时候 刚开始老是不对。后来整了一个全局变量,在进行判断一下就OK了。
代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script type="text/javascript">
var count = 1; //用来判断是删除 还是增加按钮 以便count值进行计算
function checkCount(boolOK, coun) {
if (boolOK == true) {
return count++;
}
else {
count--;
}
} //添加一个input标签 同时也对它的ID和Name进行赋值。
function AddInput() {
// checkCount(2, true);
countAA = checkCount(true, count);
// alert(countAA);
//count++;
var question = document.getElementById("question"); //创建span
var span = document.createElement("span");
span.id = "lbl" + count;
span.innerText = "您的第" + count + "个问题: ";
question.appendChild(span); //创建input
var input = document.createElement("input");
input.type = "text";
input.id = "questions[" + count + "]";
input.name = "questions[" + count + "].name";
question.appendChild(input); //创建一个空格
var br = document.createElement("br");
question.appendChild(br);
} //每次删除最后一个input标签
function DecInput() {
var count2 = 0
var inputs = document.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++) {
var input = inputs[i];
if (input.type == "text") {
count2++;
}
} var question = document.getElementById("question"); var whichInput = document.getElementById("questions[" + count2 + "]");
var whichSpan = document.getElementById("lbl" + count2 + ""); question.removeChild(whichInput);
question.removeChild(whichSpan); var brs = document.getElementsByTagName("br");
question.removeChild(brs[count2 - 1]); checkCount(false, count2);
} function TestClick() {
var q2 = document.getElementById("questions[4]");
if (q2) {
alert("OK");
}
else {
alert("No...");
}
} function initEvent() {
var inputs = document.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++) {
var input = inputs[i];
if (input.type == "text") {
input.onmouseout = myOnmouseout;
input.onfocus = myOnfocus;
}
}
} function myOnmouseout() {
this.style.backgroundColor = "white";
} function myOnfocus() {
this.style.backgroundColor = "gray";
}
</script>
</head>
<body onmousemove="initEvent()">
<fieldset style="width: 500px; margin-left: 200px;">
<legend>
<h6>
亲爱的用户,请输入您的问题</h6>
</legend>
<div id="question" style="border: 1px solid red;">
<span id="span1">您的第1个问题:</span>
<input id="Text1" type="text" /><br />
</div>
<div style="margin-top: 100px;">
<input id="btnAddInput" type="button" value="新增一个Input" onclick="AddInput()" />
<input id="btnDecre" type="button" value="删除一个Input" onclick="DecInput()" />
<input id="Button1" type="button" value="测试" onclick="TestClick()" />
</div>
</fieldset>
</body>
</html>
javascript实现自动添加文本框功能的更多相关文章
- javascript 文字大小自动适应文本框 (文字大小自动调整)
javascript 文字大小自动适应文本框 (文字大小自动调整) TOC 思考 思考一:面积法 思考二:微调法 代码 在进行类似微博墙之类的展示页面中,经常会遇到这样的需求:在固定大小的区域放入字数 ...
- AutoCompleteTextView自动完成文本框
AutoCompleteTextView是从EditText派生出来的,比普通编辑框多了一个功能,当用户输入一定字符后,自动完成文本框会显示一个下拉单,供用户选择,当选中一个后,被选中的内容会显示在文 ...
- Android 自学之自动完成文本框 AutoCompleteTextView
自动完成文本框(AutoCompleteTextView)从EditText派生而出,实际上他也是一个编辑框,但他比普通的编辑框多了一个功能:当用户输入一定字符后,自动完成文本框会显示一个下拉菜单,供 ...
- Android开发10.2:UI组件AutoCompleteTextView(自动完成文本框)
概述 AutoCompleteTextVeiw(自动完成文本框)从 EditText派生而出 PS :EditText用法介绍 当用户输入一定字符后,自动完成自动完成文本框会显示 ...
- Android零基础入门第47节:自动完成文本框AutoCompleteTextView
原文:Android零基础入门第47节:自动完成文本框AutoCompleteTextView 上一期学习的Spinner的使用,掌握的怎么样?本期一起来学习AutoCompleteTextView的 ...
- android脚步---自动完成文本框
自动完成文本框AutoCompleteTextView,当用户输入一定字符时,自动完成文本框会显示一个下拉菜单,供用户选择,设置一个Adapter,该Adapter中封装了AutoCompleteTe ...
- 用JS添加文本框案例代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- matlab图形中添加文本框
图形中添加文本框,自己目前了解到了两种方法:1.用legend函数就可以对图形标注,形成一个文本框: 2.就是用annotation('textbox',[0.2,0.2.0.1,0.3],'Line ...
- 通过jquery来实现文本框和下拉框动态添加效果,能根据自己的需求来自定义最多允许添加数量,实用的jquery动态添加文本框特效
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
随机推荐
- 手把手教你写带登录的NodeJS爬虫+数据展示
其实在早之前,就做过立马理财的销售额统计,只不过是用前端js写的,需要在首页的console调试面板里粘贴一段代码执行,点击这里.主要是通过定时爬取https://www.lmlc.com/s/web ...
- Android Handler学习笔记
已经习惯了挖坑不填,继续任性一下,周一到周五继续挖坑,每周六周日负责填坑. 1.从Android UI线程谈起 出于性能考虑,Android 中的UI操作并不是线程安全的,所以Android中规定只能 ...
- Could not Open Install.Log File解决方法
很多时候我们使用控制面板卸载软件会遇到could not open install.log file的报错,最近我也遇到了一次.之前遇到这样的问题,很多人都会选择直接删除软件安装目录和快捷方式等等.这 ...
- gcc编译c中有与lua交互的代码
编译C程序中有与Lua有关的程序(编译环境是Linux系统,lua解释器是luajit)gcc -o test30 test30.cpp -I/usr/local/include/luajit-2.0 ...
- mmap详解
共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式, 因为进程可以直接读写内存,而不需要任何 数据的拷贝.对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存 ...
- SASS概览
1.安装: sass需要使用ruby,首先安装ruby,之后: gem install sass 编译: sass input.scss output.css 2.快速入门: 变量: .scss 变量 ...
- MySQL主从宕机的解决方法
测试系统:centos6.5系统 测试环境IP地址划分: master: 192.168.80.130 slave:192.168.80.143 slave:192.168.80.146 首先模拟(M ...
- Vue系列(一):简介、起步、常用指令、事件和属性、模板、过滤器
一. Vue.js简介 1. Vue.js是什么 Vue.js也称为Vue,读音/vju:/,类似view,错误读音v-u-e 是一个轻量级MVVM(Model-View-ViewModel)框架,和 ...
- tomcat闪退无法启动 the catalina_home environment variable is not defined correctly this environment variable is needed to run this program
未成功配置CATALINA_HOME 1.计算机>属性>环境变量, 新建环境变量.变量名为CATALINA_HOME ,变量值tomcat的解压目录,注意后面不用多加“\”或者“;” 2. ...
- 【【henuacm2016级暑期训练】动态规划专题 L】Civilization
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 给一个森林. 就是由很多棵树组成.. 然后会询问你其中一棵树的最长链. 初始状态的最长链可以用两遍dfs分别找最长路得到. 然后要求 ...