JS添加删除一组文本框并对输入信息加以验证判断其正确性


Posted in Javascript onApril 11, 2013

在做项目中遇到这样一个问题,就是我们需要添加几组数据到数据库,但是具体几组数据不确定,有客户来填写,比如我们需要添加打折策略,可能个策略有很多组方案,比如“满100打5折,满200打4折,满500打3折”等等,这是作为一组方案来执行的,但是并不确定一组方案中有几个子方案,所以,这里我用JS进行添加删除子方案,并要对方案输入的正确性加以判断,并且通过json传输写入数据库,这里我们主要写如果添加删除一组子项目和如果给每个文本框添加验证。

动态添加一组文本框:

var countTable = 0; 
//添加表格行 
addTable = function () { 
//获得表格 
var tab1 = document.getElementById("discountTable"); 
//table中所有的单元格数 
// cell = tab1.cells.length; 
//table 中行数 
n = tab1.rows.length; 
//table 中的列数 
//cell = cell / n; 
//向table中加入行 
r = tab1.insertRow(n); 
//添加当前行的每个单元格 
r.insertCell(0).innerHTML = '消费满X元: <input type=\'text\' style="width:150px;" onblur="terifyNumFirst(this)" class =\'groupFirst\' /><label class="veritifyMessage" style="display:none; color: #F00;font-size:16px; width:10px;float:right">*</label>'; 
r.insertCell(1).innerHTML = '打折率:<input type=\'text\' style="width:150px;" onblur="terifyNumSecond(this)" class =\'groupSecond\' /><label class="veritifyMessage" style="display:none;font-size:16px ;color: #F00; width:10px;float:right">*</label>'; 
r.insertCell(2).innerHTML = '<input type="image" name="imageField" id="'+countTable+'" onclick="deleteTable(this)" src="../images/closeStraty.jpg" />'; 
countTable = countTable + 1; 
}

注:
1.这里的countTable应为全部变量,用于对每一行进行标识,这样就确定每一行都是不同的,防止删除一行后ID重复的情况。
2.在这里为每一个text添加了焦点离去事件,即当焦点离开当前文本框时,我们需要对其严重是否符合输入。
3.在文本框后加了label,作为验证控件,当我们输入的文本不符合要求时,该label可见。
删除任意一行:
//删除当前行 
deleteTable = function (el) { 
// alert( el.id); 
//获取table 
var tab1 = document.getElementById("discountTable"); 
//循环判断需要删除的行 
for (i = 0; i < tab1.rows.length; i++) { 
//获取行的ID 
var deleteValue = tab1.rows[i].cells[2].childNodes[0].id; 
//循环获得每行的id与当前点击的ID比较,相同则删除 
if (el.id == deleteValue) { 
tab1.deleteRow(i); 
break; 
} 
} 
}

首先我们需要是或许要删除行的位置,这里就需要通过循环对比表格中哪一行是当前点中行,然后进行删除。
如何显示和隐藏验证控件(当焦点离去文本时,对文本进行判断):
//验证第一条信息输入是否合法 
terifyNumFirst = function (objText) { 
var terifyText = objText.value; 
//信息不能为空 
if (terifyText== "") 
{ 
objText.parentNode.children[1].style.display="block"; 
return; 
} 
//信息必须为数字 
if (isNaN(terifyText)) 
{ 
objText.parentNode.children[1].style.display = "block"; 
return; 
} 
objText.parentNode.children[1].style.display = "none"; 
}

当全部信息需要写入时,我们同样需要进行判断,如果有不合法的提示,否则生成datatable返回,具体如何往后台传输,会在下篇博客中写道。
//生成DataTable对象 
function generateDtb() { 
//判断数据是否可以写入标志,false为可以写入,true为不可以写入 
var flag = false; 
//获取table 
var tab1 = document.getElementById("discountTable"); 
//第一列数据 
var firstGroup = document.getElementsByClassName("groupFirst"); 
//第二列数据 
var secondGroup = document.getElementsByClassName("groupSecond"); 
//判断验证信息是否合法 
var veritify = document.getElementsByClassName("veritifyMessage"); 
// alert(secondGroup.item(0).value); 
//判断是否为空 
for (var i = 0; i < firstGroup.length; i++) 
{ 
//判断第一列数据是否为空,为空则显示提示 
if (firstGroup[i].value == "") 
{ 
veritify[(i * 2)].style.display = "block"; 
flag = true; 
} 
//判断第二列数据是否为空,为空则显示提示 
if (secondGroup[i].value == "") 
{ 
veritify[(i * 2 + 1)].style.display = "block"; 
flag = true; 
} 
} 
for (var i = 0; i < veritify.length; i++) 
{ 
if (veritify[i].style.display == "block") 
{ 
flag = true; 
} 
} 
// alert(veritify.length); 
//如何输入信息都合法,则整理当前信息为数组,返回该信息进行处理。 
if (flag == false) { 
//写入 
var txtName = document.getElementById("txtName").value; 
//创建数组 
var dtb = new Array(); 
//通过循环把数据写入到数组并返回 
for (var i = 0; i < firstGroup.length; i++) { 
var row = new Object(); 
row.Name = txtName; 
row.fullMoney = firstGroup[i].value; 
row.discount = secondGroup[i].value; 
dtb.push(row); 
} 
return dtb; 
}

这里的验证也相对比较简单,只是验证文本框输入是否为空和是否为数字,用一个label的显示和隐藏来判断是否符合输入,在下篇文章中会写道如何把数组传入后台并写入数据库。
Javascript 相关文章推荐
文本加密解密
Jun 23 Javascript
jquery dialog open后,服务器端控件失效的快速解决方法
Dec 19 Javascript
a标签click和href执行顺序探讨
Jun 23 Javascript
jQuery实现设置、移除文本框默认值功能
Jan 13 Javascript
javascript使用输出语句实现网页特效代码
Aug 06 Javascript
超精准的javascript验证身份证号的具体实现方法
Nov 18 Javascript
jquery  实现轮播图详解及实例代码
Oct 12 Javascript
js浏览器html5表单验证
Oct 17 Javascript
Bootstrap基本组件学习笔记之面板(14)
Dec 08 Javascript
详解vue-cli3 中跨域解决方案
Apr 10 Javascript
vue+webpack 更换主题N种方案优劣分析
Oct 28 Javascript
实例讲解JavaScript 计时事件
Jul 04 Javascript
如何使用json在前后台进行数据传输实例介绍
Apr 11 #Javascript
在javascript中对于DOM的加强
Apr 11 #Javascript
Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
Apr 11 #Javascript
在javascript中关于节点内容加强
Apr 11 #Javascript
onkeydown事件解决按回车键直接提交数据的需求
Apr 11 #Javascript
jQuery实用基础超详细介绍
Apr 11 #Javascript
在js中判断checkboxlist(.net控件客户端id)是否有选中
Apr 11 #Javascript
You might like
自定义PHP分页函数
2006/10/09 PHP
用PHP写的MySQL数据库用户认证系统代码
2007/03/22 PHP
解析php中die(),exit(),return的区别
2013/06/20 PHP
php中rename函数用法分析
2014/11/15 PHP
浅谈laravel orm 中的一对多关系 hasMany
2019/10/21 PHP
ASP.NET jQuery 实例8 (动态添加内容到DropDownList)
2012/02/03 Javascript
js之事件冒泡和事件捕获详细介绍
2013/10/28 Javascript
jQuery中:last选择器用法实例
2014/12/30 Javascript
jquery利用命名空间移除绑定事件的方法
2015/03/11 Javascript
简单谈谈javascript Date类型
2015/09/06 Javascript
如何消除inline-block属性带来的标签间间隙
2016/03/31 Javascript
React.js入门实例教程之创建hello world 的5种方式
2016/05/11 Javascript
JS控制HTML元素的显示和隐藏的两种方法
2016/09/27 Javascript
HTML Table 空白单元格补全的简单实现
2016/10/13 Javascript
jQGrid动态填充select下拉框的选项值(动态填充)
2016/11/28 Javascript
利用JS实现简单的瀑布流加载图片效果
2017/04/22 Javascript
在layui中使用form表单监听ajax异步验证注册的实例
2019/09/03 Javascript
js实现飞机大战游戏
2020/08/26 Javascript
Vue中的nextTick作用和几个简单的使用场景
2021/01/25 Vue.js
Python使用BeautifulSoup库解析HTML基本使用教程
2016/03/31 Python
django定期执行任务(实例讲解)
2017/11/03 Python
浅谈python脚本设置运行参数的方法
2018/12/03 Python
Python 数据库操作 SQLAlchemy的示例代码
2019/02/18 Python
Python unittest工作原理和使用过程解析
2020/02/24 Python
在python中利用pycharm自定义代码块教程(三步搞定)
2020/04/15 Python
Python中Yield的基本用法
2020/10/18 Python
纯CSS3实现绘制各种图形实现代码详细整理
2012/12/26 HTML / CSS
一款纯css3实现简单的checkbox复选框和radio单选框
2014/11/05 HTML / CSS
DogBuddy荷兰:找到你最完美的狗保姆
2019/04/17 全球购物
通信专业个人自我鉴定
2013/10/21 职场文书
运动会开幕式邀请函
2014/02/03 职场文书
旅游专业毕业生自荐书
2014/06/30 职场文书
党员干部学习心得体会
2016/01/23 职场文书
JS 4个超级实用的小技巧 提升开发效率
2021/10/05 Javascript
mysql聚集索引、辅助索引、覆盖索引、联合索引的使用
2022/02/12 MySQL
微软发布Windows 11今年最大更新22H2(附 ISO 镜像官方下载)
2022/09/23 数码科技