js 动态添加Table tr,选中与不选中checkbox行数NO的变化
首次加载进入页面,如图:
注:Table是在js中拼接字符串循环动态添加的(拼接字符串,详见之前随笔)

点击Line2 checkbox后,效果如图:

实现的效果就是: 点击checkbox — 显示本行的其他列的textbox,同时动态新增下一行NO行数+1,其他列的textbox隐藏;
取消checkbox —remove本行的所有数据,同时下面的一行向上移,NO行数-1;
实现的js代码:
function ShowEdit(obj) {
//获取当前行数
var num = obj.id;
num = $.trim(num.replace("gvItem_ck_", ""));
if ($.trim($(obj).attr("id")) == "gvItem_ck_0") {
$(obj).attr("checked", true);
return;
}
if ($(obj).is(":checked") == true) {//点击checkbox
$($(obj).parent().parent("tr")).each(function () {
$(this).find(".ck").find("input").attr("checked", "checked");
var a = $(this).find("td").eq(1).text();
$(obj).parent().nextAll().eq(1).find("input").css("display", "inline");
$(obj).parent().nextAll().eq(2).find("input").css("display", "inline");
$(obj).parent().nextAll().eq(3).find("input").css("display", "inline");
$(obj).parent().nextAll().eq(4).find("input").css("display", "inline");
$(obj).parent().nextAll().eq(5).find("input").css("display", "inline");
var trItem = "<tr align='center' id='line" + (parseInt(num) + 1) + "'><td><input id='gvItem_ck_" + (parseInt(num) + 1) + "' type='checkbox' class='ck' onclick='ShowEdit(this);'/></td>"
+ "<td><span id='gvItem_lbNO_" + (parseInt(num) + 1) + "' class='lbNO'>" + (parseInt(a) + 1) + "</span></td>"
+ "<td><input type='text' maxlength='50' id='gvItem_tbPN_" + (parseInt(num) + 1) + "' style='width:80%;display: none' class='tbPN'/></td>"
+ "<td><input type='text' maxlength='50' id='gvItem_tbSN_" + (parseInt(num) + 1) + "' style='width:80%;display: none' class='tbSN'/></td>"
+ "<td><input type='text' maxlength='3' id='gvItem_tbQty_" + (parseInt(num) + 1) + "' style='width:80%;display: none' class='tbQty' onkeyup='GetQty()'/></td>"
+ "<td><input type='text' maxlength='30' id='gvItem_tbSRNo_" + (parseInt(num) + 1) + "' style='width:80%;display: none' class='tbSRNo'/></td>"
+ "<td><input type='text' maxlength='30' id='gvItem_tbSRLineNo_" + (parseInt(num) + 1) + "' style='width:80%;display: none' class='tbSRLineNo' onkeyup='GetSRLineNo()'/></td></tr>";
$("#line" + num).after(trItem);
});
} else {//取消checkbox
var trNode = $(obj).parent().parent();
$($(obj).parent().parent().nextAll("tr")).each(function () {
var a = $(this).find("span").eq(0).text();
$(this).find("span").eq(0).text(a - 1);
});
trNode.remove();
}
}
js 动态添加Table tr,选中与不选中checkbox行数NO的变化的更多相关文章
- JS动态创建Table,Tr,Td并赋值
JS动态创建Table,Tr,Td并赋值. 成果库修改: 要求主题列表随成果类型改变而改变 网上查询资料后开工,在成果类型下拉框添加change()事件触发Dwr,查询主题集合——动态创建/编辑Tab ...
- js动态添加table 数据tr td
成果库修改: 要求主题列表随成果类型改变而改变 网上查询资料后开工,在成果类型下拉框添加change()事件触发Dwr,查询主题集合——动态创建/编辑Table 概要代码 ...
- js动态给table添加/删除tr的方法
js动态给table添加/删除tr的方法. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> ...
- js 动态添加表单 table tr
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- MiniUI动态添加table表格
本文将介绍一下,如何用Jquery MiniUi动态添加一行table表格 1.效果展示 ↓ 2.具体代码 <script type="text/javascript"> ...
- form表单 无法提交js动态添加的表单元素问题。。
第一种情况, 这种情况js动态添加的表单元素是不能提交到服务器端的 <table> <form method="post" action=" url ...
- 使用js动态添加组件
在文章开始之前,我想说两点 1 自己初学js,文章的内容在大神看来可能就是不值一提,但是谁都是从hello world来的,望高 手不吝指教# 2 我知道这个标题起的比较蛋疼,大家看图就能说明问题 ...
- Jquery 实现动态加入table tr 和删除tr 以及checkbox的全选 和 获取加入TR删除TR后的数据
关于jquery实现动态加入table tr的问题我也不多说了 上面代码非常多地方都有凝视的 关于返回的 编辑后的table 数据 我这里想说的是我直接把他保存成一个连接起来的字符串了 格式 str= ...
- js动态添加onload、onresize、onscroll事件(另类方法)
js动态添加onload.onresize.onscroll事件(另类方法) window 的 onload.onresize.onscroll 事件,跟其他的事件不一样,它不能用 attachE ...
随机推荐
- FreeMarker学习(内建函数参考)
内容参考:http://freemarker.foofun.cn/dgui_quickstart_basics.html 一.字符串内建函数 boolean: 字符串转为布尔值.字符串必须是 true ...
- 解决“mysql不是内部/外部命令,也不是可执行程序,也不是批处理文件”
解决方案: 1.切换到mysql.exe文件所在目录: 2.将mysql.exe文件所在目录添加到操作系统内的环境变量中: 如何添加环境变量: 1.右击“我的电脑”——>属性——>高级—— ...
- Android性能优化-电量优化
前言 电量优化,这个名词在传统PC时代,我们基本很少听见.然而到了诺基亚时代,我们也同样很少关注.直到了移动互联的智能机时代.电量优化才被慢慢的重视起来.可能的原因如下: 移动设备,不能一直使用电源供 ...
- java高级之多线程
1.1,多线程的作用: *线程是程序执行的一条路径, 一个进程中可以包含多条线程 *多线程并发执行可以提高程序的效率, 可以同时完成多项工作 1.2,多线程的应用场景: * 红蜘蛛同时共享屏幕给多个电 ...
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_4-3.登录检验JWT实战之封装通用方法
笔记 3.登录检验JWT实战之封装通用方法 讲解:引入相关依赖并开发JWT工具类 1.加入相关依赖 <!-- JWT相关 --> <dependenc ...
- ajax的回调函数
ajax的回调函数(done,fail,always) 观看代码: $.ajax({ type: "post",//请求的类型 url: "/book/detail?ac ...
- switch语句 initialization of 'XXX' is skipped by 'case' label 原因及解决办法--块语句的作用
出错代码段: switch (t) { case 0: int a = 0; break; default: break; }编译时提示:“error C2361: initialization ...
- 如何在 CentOS 里下载 RPM 包及其所有依赖包
方法一.利用 Downloadonly 插件下载 RPM 软件包及其所有依赖包 默认情况下,这个命令将会下载并把软件包保存到 /var/cache/yum/ 的 rhel-{arch}-channel ...
- ASP.NET Core 入门笔记3,使用ASP.NET Core MVC框架构建Web应用
一.ASP.NET Core MVC 输出Hello World,Friend! 1.引入 ASP.NET Core MVC 修改应用启动类(Startup.cs),引入MVC模块并配置默认路由 pu ...
- EasyTouch5插件使用 EasyTouch手势检测功能
(1)导入EasyTouch5插件,注意该插件对Unity有版本要求 (2)首先在场景中创建一个EasyTouch,这个是必需的,它是进行检测的核心组件,场景中有任何物体使用了EasyTouch的东西 ...