成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

js+Html實(shí)現(xiàn)表格可編輯操作

瀏覽:145日期:2024-04-01 17:28:53

本文實(shí)例為大家分享了js+Html實(shí)現(xiàn)表格可編輯操作的具體代碼,供大家參考,具體內(nèi)容如下

功能描述:?jiǎn)螕繇?yè)面使單元格td變成可編輯狀態(tài),輸入內(nèi)容后,當(dāng)單元格失去焦點(diǎn)時(shí),保存輸入的內(nèi)容。點(diǎn)擊增加行,在table的末尾增加一行;點(diǎn)擊刪除行,刪除table中最末尾的一行。

<html> <head> <meta http-equiv='Content-Type' content='text/html; charset=UTF-8' /> <title>編輯表格數(shù)據(jù)</title> <style type='text/css'> <!-- body,div,p,ul,li,font,span,td,th{ font-size:10pt; line-height:155%; } table{ border-top-width: 1px; border-right-width: 1px; border-bottom-width: 0px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: none; border-left-style: solid; border-top-color: #CCCCCC; border-right-color: #CCCCCC; border-bottom-color: #CCCCCC; border-left-color: #CCCCCC; } td{ border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #CCCCCC; } .EditCell_TextBox { width: 90%; border:1px solid #0099CC; } .EditCell_DropDownList { width: 90%; } --> </style> <script>/** * JS實(shí)現(xiàn)可編輯的表格 * 用法:EditTables(tb1,tb2,tb2,......); **/ //設(shè)置多個(gè)表格可編輯 function EditTables(){ for(var i=0;i<arguments.length;i++){ SetTableCanEdit(arguments[i]); } } //設(shè)置表格是可編輯的 function SetTableCanEdit(table){ for(var i=1; i<table.rows.length;i++){ SetRowCanEdit(table.rows[i]); } } function SetRowCanEdit(row){ for(var j=0;j<row.cells.length; j++){ //如果當(dāng)前單元格指定了編輯類型,則表示允許編輯 var editType = row.cells[j].getAttribute('EditType'); if(!editType){ //如果當(dāng)前單元格沒(méi)有指定,則查看當(dāng)前列是否指定 editType = row.parentNode.rows[0].cells[j].getAttribute('EditType'); } if(editType){ row.cells[j].onclick = function (){ EditCell(this); } } } } //設(shè)置指定單元格可編輯 function EditCell(element, editType){ var editType = element.getAttribute('EditType'); if(!editType){ //如果當(dāng)前單元格沒(méi)有指定,則查看當(dāng)前列是否指定 editType = element.parentNode.parentNode.rows[0].cells[element.cellIndex].getAttribute('EditType'); } switch(editType){ case 'TextBox': CreateTextBox(element, element.innerHTML); break; case 'DropDownList': CreateDropDownList(element); break; default: break; } } //為單元格創(chuàng)建可編輯輸入框 function CreateTextBox(element, value){ //檢查編輯狀態(tài),如果已經(jīng)是編輯狀態(tài),跳過(guò) var editState = element.getAttribute('EditState'); if(editState != 'true'){ //創(chuàng)建文本框 var textBox = document.createElement('INPUT'); textBox.type = 'text'; textBox.className='EditCell_TextBox'; //設(shè)置文本框當(dāng)前值 if(!value){ value = element.getAttribute('Value'); } textBox.value = value; //設(shè)置文本框的失去焦點(diǎn)事件 textBox.onblur = function (){ CancelEditCell(this.parentNode, this.value); } //向當(dāng)前單元格添加文本框 ClearChild(element); element.appendChild(textBox); textBox.focus(); textBox.select(); //改變狀態(tài)變量 element.setAttribute('EditState', 'true'); element.parentNode.parentNode.setAttribute('CurrentRow', element.parentNode.rowIndex); } } //為單元格創(chuàng)建選擇框 function CreateDropDownList(element, value){ //檢查編輯狀態(tài),如果已經(jīng)是編輯狀態(tài),跳過(guò) var editState = element.getAttribute('EditState'); if(editState != 'true'){ //創(chuàng)建下接框 var downList = document.createElement('Select'); downList.className='EditCell_DropDownList'; //添加列表項(xiàng) var items = element.getAttribute('DataItems'); if(!items){ items = element.parentNode.parentNode.rows[0].cells[element.cellIndex].getAttribute('DataItems'); } if(items){ items = eval('[' + items + ']'); for(var i=0; i<items.length; i++){ var oOption = document.createElement('OPTION'); oOption.text = items[i].text; oOption.value = items[i].value; downList.options.add(oOption); } } //設(shè)置列表當(dāng)前值 if(!value){ value = element.getAttribute('Value'); } downList.value = value; //設(shè)置創(chuàng)建下接框的失去焦點(diǎn)事件 downList.onblur = function (){ CancelEditCell(this.parentNode, this.value, this.options[this.selectedIndex].text); } //向當(dāng)前單元格添加創(chuàng)建下接框 ClearChild(element); element.appendChild(downList); downList.focus(); //記錄狀態(tài)的改變 element.setAttribute('EditState', 'true'); element.parentNode.parentNode.setAttribute('LastEditRow', element.parentNode.rowIndex); } } //取消單元格編輯狀態(tài) function CancelEditCell(element, value, text){ element.setAttribute('Value', value); if(text){ element.innerHTML = text; }else{ element.innerHTML = value; } element.setAttribute('EditState', 'false'); //檢查是否有公式計(jì)算 CheckExpression(element.parentNode); } //清空指定對(duì)象的所有字節(jié)點(diǎn) function ClearChild(element){ element.innerHTML = ''; } //添加行 function AddRow(table, index){ var lastRow = table.rows[table.rows.length-1]; var newRow = lastRow.cloneNode(true); //計(jì)算新增加行的序號(hào),需要引入jquery 的jar包 var startIndex = $.inArray(lastRow,table.rows); var endIndex = table.rows; table.tBodies[0].appendChild(newRow); newRow.cells[0].innerHTML=endIndex-startIndex; SetRowCanEdit(newRow); return newRow; } //刪除行 function DeleteRow(table, index){ for(var i=table.rows.length - 1; i>0;i--){ var chkOrder = table.rows[i].cells[0].firstChild; if(chkOrder){ if(chkOrder.type = 'CHECKBOX'){ if(chkOrder.checked){ //執(zhí)行刪除 table.deleteRow(i); } } } } } //提取表格的值,JSON格式 function GetTableData(table){ var tableData = new Array(); alert('行數(shù):' + table.rows.length); for(var i=1; i<table.rows.length;i++){ tableData.push(GetRowData(tabProduct.rows[i])); } return tableData; } //提取指定行的數(shù)據(jù),JSON格式 function GetRowData(row){ var rowData = {}; for(var j=0;j<row.cells.length; j++){ name = row.parentNode.rows[0].cells[j].getAttribute('Name'); if(name){ var value = row.cells[j].getAttribute('Value'); if(!value){ value = row.cells[j].innerHTML; } rowData[name] = value; } } //alert('ProductName:' + rowData.ProductName); //或者這樣:alert('ProductName:' + rowData['ProductName']); return rowData; } //檢查當(dāng)前數(shù)據(jù)行中需要運(yùn)行的字段 function CheckExpression(row){ for(var j=0;j<row.cells.length; j++){ expn = row.parentNode.rows[0].cells[j].getAttribute('Expression'); //如指定了公式則要求計(jì)算 if(expn){ var result = Expression(row,expn); var format = row.parentNode.rows[0].cells[j].getAttribute('Format'); if(format){ //如指定了格式,進(jìn)行字值格式化 row.cells[j].innerHTML = formatNumber(Expression(row,expn), format); }else{ row.cells[j].innerHTML = Expression(row,expn); } } } } //計(jì)算需要運(yùn)算的字段 function Expression(row, expn){ var rowData = GetRowData(row); //循環(huán)代值計(jì)算 for(var j=0;j<row.cells.length; j++){ name = row.parentNode.rows[0].cells[j].getAttribute('Name'); if(name){ var reg = new RegExp(name, 'i'); expn = expn.replace(reg, rowData[name].replace(/,/g, '')); } } return eval(expn); } /// /** * 格式化數(shù)字顯示方式 * 用法 * formatNumber(12345.999,’#,##0.00’); * formatNumber(12345.999,’#,##0.##’); * formatNumber(123,’000000’); * @param num * @param pattern */ /* 以下是范例 formatNumber(’’,’’)=0 formatNumber(123456789012.129,null)=123456789012 formatNumber(null,null)=0 formatNumber(123456789012.129,’#,##0.00’)=123,456,789,012.12 formatNumber(123456789012.129,’#,##0.##’)=123,456,789,012.12 formatNumber(123456789012.129,’#0.00’)=123,456,789,012.12 formatNumber(123456789012.129,’#0.##’)=123,456,789,012.12 formatNumber(12.129,’0.00’)=12.12 formatNumber(12.129,’0.##’)=12.12 formatNumber(12,’00000’)=00012 formatNumber(12,’#.##’)=12 formatNumber(12,’#.00’)=12.00 formatNumber(0,’#.##’)=0 */ function formatNumber(num,pattern){var strarr = num?num.toString().split(’.’):[’0’];var fmtarr = pattern?pattern.split(’.’):[’’];var retstr=’’;// 整數(shù)部分var str = strarr[0];var fmt = fmtarr[0];var i = str.length-1; var comma = false;for(var f=fmt.length-1;f>=0;f--){ switch(fmt.substr(f,1)){ case ’#’:if(i>=0 ) retstr = str.substr(i--,1) + retstr;break; case ’0’:if(i>=0) retstr = str.substr(i--,1) + retstr;else retstr = ’0’ + retstr;break; case ’,’:comma = true;retstr=’,’+retstr;break; }}if(i>=0){ if(comma){ var l = str.length; for(;i>=0;i--){retstr = str.substr(i,1) + retstr;if(i>0 && ((l-i)%3)==0) retstr = ’,’ + retstr; } } else retstr = str.substr(0,i+1) + retstr;}retstr = retstr+’.’;// 處理小數(shù)部分str=strarr.length>1?strarr[1]:’’;fmt=fmtarr.length>1?fmtarr[1]:’’;i=0;for(var f=0;f<fmt.length;f++){ switch(fmt.substr(f,1)){ case ’#’:if(i<str.length) retstr+=str.substr(i++,1);break; case ’0’:if(i<str.length) retstr+= str.substr(i++,1);else retstr+=’0’;break; }}return retstr.replace(/^,+/,’’).replace(/.$/,’’);} </script> </head> <body> <form name='form1' method='post' action=''> <h3>可編輯的表格</h3> <table border='0' cellpadding='0' cellspacing='0' id='tabProduct'> <tr> <td bgcolor='#EFEFEF' Name='Num'><input type='checkbox' name='checkbox' value='checkbox' /></td> <td bgcolor='#EFEFEF' Name='Num' EditType='TextBox'>序號(hào)</td> <td bgcolor='#EFEFEF' Name='ProductName' EditType='DropDownList' DataItems='{text:’A’,value:’a’},{text:’B’,value:’b’},{text:’C’,value:’c’},{text:’D’,value:’d’}'>商品名稱</td> <td bgcolor='#EFEFEF' Name='Amount' EditType='TextBox'>數(shù)量</td> <td bgcolor='#EFEFEF' Name='Price' EditType='TextBox'>單價(jià)</td> <td bgcolor='#EFEFEF' Name='SumMoney' Expression='Amount*Price' Format='#,###.00'>合計(jì)</td> </tr> <tr> <td bgcolor='#FFFFFF'><input type='checkbox' name='checkbox2' value='checkbox' /></td> <td bgcolor='#FFFFFF'>1</td> <td bgcolor='#FFFFFF' Value='c'>C</td> <td bgcolor='#FFFFFF'>0</td> <td bgcolor='#FFFFFF'>0</td> <td bgcolor='#FFFFFF'>0</td> </tr> <tr> <td bgcolor='#FFFFFF'><input type='checkbox' name='checkbox22' value='checkbox' /></td> <td bgcolor='#FFFFFF'>2</td> <td bgcolor='#FFFFFF' Value='d'>D</td> <td bgcolor='#FFFFFF'>0</td> <td bgcolor='#FFFFFF'>0</td> <td bgcolor='#FFFFFF'>0</td> </tr> </table> <br /> <input type='button' name='Submit' value='新增' onclick='AddRow(document.getElementById(’tabProduct’),1)' /> <input type='button' name='Submit2' value='刪除' onclick='DeleteRow(document.getElementById(’tabProduct’),1)' /> <input type='button' name='Submit22' value='重置' onclick='window.location.reload()' /> <input type='submit' name='Submit3' value='提交' onclick='GetTableData(document.getElementById(’tabProduct’));return false;' /> </form> <script language='javascript' src='http://www.piao2010.com/bcjs/GridEdit.js'></script> <script language='javascript'> var tabProduct = document.getElementById('tabProduct'); // 設(shè)置表格可編輯 // 可一次設(shè)置多個(gè),例如:EditTables(tb1,tb2,tb2,......) EditTables(tabProduct); </script> </body> </html>

效果如下:

js+Html實(shí)現(xiàn)表格可編輯操作

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: JavaScript
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
国产精品乱码久久久久久| 久久久不卡影院| 2019国产精品| 亚洲电影自拍| 久草在线在线精品观看| 国产精品久久久久永久免费观看| 久久久综合网| 国内精品久久久久久久97牛牛 | 欧美精选一区二区| 欧美在线视频一区二区三区| 国产真实乱偷精品视频免| 亚洲欧美偷拍卡通变态| 久久久精品欧美丰满| 欧美写真视频网站| 国产精品一卡| 中文高清一区| 国产美女在线观看一区| 亚洲欧美日韩视频二区| 一区二区国产盗摄色噜噜| 亚洲美女黄色| 亚洲一区二区三区精品在线| 久久一区二区三区超碰国产精品| 日本不卡一二三| 欧美老女人在线| 成人午夜在线播放| 久久久久国产精品免费免费搜索 | 毛片一区二区| 天堂成人免费av电影一区| 久久婷婷国产综合尤物精品| 久久精品国产亚洲一区二区三区| 欧美视频一区二区在线观看| 韩国v欧美v亚洲v日本v| 91精品国产色综合久久不卡蜜臀 | 久久综合给合久久狠狠色| 日韩—二三区免费观看av| 欧美日韩一区不卡| 国产精品一卡二卡在线观看| 精品国产99国产精品| 91丨porny丨在线| 国产精品你懂的在线欣赏| 亚洲激情不卡| 亚洲在线视频网站| 久久久久久夜| 国产一区二区三区四| 久久综合五月天婷婷伊人| 欧美二区视频| 亚洲激情中文1区| 色视频成人在线观看免| 国产xxx精品视频大全| 亚洲国产高清不卡| 免费精品视频| 国产在线精品一区二区| 久久久久久久久免费| 亚洲国产精品第一区二区| 亚洲国产精品一区二区尤物区| 色8久久人人97超碰香蕉987| 粉嫩久久99精品久久久久久夜| 久久久国产精品麻豆| 亚洲巨乳在线| 裸体健美xxxx欧美裸体表演| 精品国产乱码久久久久久久久 | 91精品国产91久久久久久最新毛片| 成人av网站在线| 亚洲婷婷在线视频| 91福利在线看| 成人精品视频一区| 亚洲私人黄色宅男| 欧美亚洲国产怡红院影院| 91在线观看免费视频| 亚洲一区二区欧美日韩| 制服丝袜国产精品| 午夜精品久久久久99热蜜桃导演 | 日韩在线一区二区三区| 日韩欧美卡一卡二| av在线这里只有精品| 亚洲女性喷水在线观看一区| 欧美色国产精品| 欧美人与禽猛交乱配| 日本大胆欧美人术艺术动态| 亚洲精品在线一区二区| 国产精品久久九九| 国产成人8x视频一区二区| 亚洲男人天堂av| 欧美一级生活片| 精品91在线| 国产尤物一区二区| 亚洲色图在线看| 欧美精品aⅴ在线视频| 欧美精品一区二区三区很污很色的 | 国产伦精一区二区三区| 国产欧美精品一区二区三区四区 | 国产馆精品极品| 午夜激情一区| 欧美剧情片在线观看| 亚洲品质自拍视频| 国产麻豆视频一区| 国产精品久久久一区二区三区| 欧美一级夜夜爽| 日产精品久久久久久久性色| 欧美日本国产| 国产精品美女xx| 欧美精品一区二区三区久久久| 亚洲视频精选在线| 粉嫩嫩av羞羞动漫久久久| 老牛嫩草一区二区三区日本| 亚洲男同性恋视频| 91美女福利视频| 4438亚洲最大| 午夜精品久久久| 亚洲人成在线影院| 欧美激情一区在线观看| heyzo一本久久综合| 宅男噜噜噜66一区二区66| 天天av天天翘天天综合网色鬼国产| 国产精品xvideos88| 精品免费一区二区三区| 狠狠狠色丁香婷婷综合久久五月| 亚洲欧洲日韩综合二区| 国产亚洲人成网站| 国产999精品久久久久久绿帽| 色美美综合视频| 亚洲影院久久精品| 亚洲经典自拍| ...中文天堂在线一区| 欧美另类女人| 国产精品灌醉下药二区| 激情综合自拍| 亚洲一区二区中文在线| 亚洲欧美日韩视频二区| 亚洲一区二区三区视频在线播放| 国产主播一区| 欧美激情一区二区| 国产久卡久卡久卡久卡视频精品| 欧美三级电影在线看| 看电视剧不卡顿的网站| 欧美人妖巨大在线| 国产精品羞羞答答xxdd| 26uuu另类欧美亚洲曰本| 成人动漫一区二区在线| 精品国产伦理网| 欧美婷婷久久| 亚洲黄色av一区| 国产日韩精品一区观看| 天堂av在线一区| 欧美日韩亚洲综合在线 | 性8sex亚洲区入口| 亚洲线精品一区二区三区八戒| 国产欧美日韩一级| 日韩高清在线电影| 欧美日韩国产小视频在线观看| 琪琪久久久久日韩精品| 777色狠狠一区二区三区| 国产91丝袜在线18| 国产欧美精品国产国产专区 | 一区二区三区四区高清精品免费观看| 一本色道精品久久一区二区三区| 亚洲精品午夜久久久| 国产日韩欧美一区| 免费在线一区观看| 91精品黄色片免费大全| 色综合中文字幕国产| 精品视频在线免费| 精品一区二区三区视频| www国产成人| 国产精品夜夜夜| 国产伦精品一区二区三区在线观看 | 欧美草草影院在线视频| 国产精品videosex极品| 亚洲成a人片在线观看中文| 欧美在线一二三四区| 丁香亚洲综合激情啪啪综合| 欧美激情在线看| 91久久精品一区二区| 国产成人综合在线观看| 日韩美女啊v在线免费观看| 欧洲精品一区二区| 欧美精品一级| 久久国产日韩欧美精品| 国产精品国产三级国产专播品爱网 | 美日韩精品视频| 国产在线日韩欧美| 中文字幕在线播放不卡一区| 在线视频你懂得一区| 欧美日韩1区| 久久精品99久久久| 亚洲美女少妇撒尿| 欧美又粗又大又爽| 亚洲欧洲日夜超级视频| 成人免费精品视频| 蜜臀av性久久久久蜜臀aⅴ四虎 | 国产日韩欧美三级| 成人综合婷婷国产精品久久蜜臀 | 一本久久知道综合久久| 国产精品资源在线看| 亚洲美女淫视频| 精品欧美一区二区三区精品久久 | 日韩精品一二区| 久久久www免费人成精品| 欧美在线观看视频一区二区| 在线日韩中文|