日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

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

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

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

功能描述:單擊頁面使單元格td變成可編輯狀態(tài),輸入內(nèi)容后,當(dāng)單元格失去焦點時,保存輸入的內(nèi)容。點擊增加行,在table的末尾增加一行;點擊刪除行,刪除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實現(xiàn)可編輯的表格 * 用法:EditTables(tb1,tb2,tb2,......); **/ //設(shè)置多個表格可編輯 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)前單元格沒有指定,則查看當(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)前單元格沒有指定,則查看當(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),跳過 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è)置文本框的失去焦點事件 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),跳過 var editState = element.getAttribute('EditState'); if(editState != 'true'){ //創(chuàng)建下接框 var downList = document.createElement('Select'); downList.className='EditCell_DropDownList'; //添加列表項 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)建下接框的失去焦點事件 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'); //檢查是否有公式計算 CheckExpression(element.parentNode); } //清空指定對象的所有字節(jié)點 function ClearChild(element){ element.innerHTML = ''; } //添加行 function AddRow(table, index){ var lastRow = table.rows[table.rows.length-1]; var newRow = lastRow.cloneNode(true); //計算新增加行的序號,需要引入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ù)行中需要運行的字段 function CheckExpression(row){ for(var j=0;j<row.cells.length; j++){ expn = row.parentNode.rows[0].cells[j].getAttribute('Expression'); //如指定了公式則要求計算 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); } } } } //計算需要運算的字段 function Expression(row, expn){ var rowData = GetRowData(row); //循環(huán)代值計算 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'>序號</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'>單價</td> <td bgcolor='#EFEFEF' Name='SumMoney' Expression='Amount*Price' Format='#,###.00'>合計</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://m.b3g6.com/bcjs/GridEdit.js'></script> <script language='javascript'> var tabProduct = document.getElementById('tabProduct'); // 設(shè)置表格可編輯 // 可一次設(shè)置多個,例如:EditTables(tb1,tb2,tb2,......) EditTables(tabProduct); </script> </body> </html>

效果如下:

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

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

標(biāo)簽: JavaScript
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲精品免费观看| 青青在线精品| 欧美一区在线观看视频| 久久亚洲国产精品一区二区| 亚洲激情黄色| 激情久久婷婷| 欧美日韩国产高清| 免费日韩视频| 亚洲精品美女91| 亚洲精品日韩久久| 日韩激情av在线| 国产欧美日韩一区二区三区四区| 亚洲91网站| 国产极品模特精品一二| 给我免费播放日韩视频| 国产极品嫩模在线观看91精品| 国产精品成人自拍| 给我免费播放日韩视频| 日韩一区二区在线免费| 欧美一级精品| 亚洲精品在线二区| 久久中文字幕导航| 日韩在线短视频| 视频一区二区三区中文字幕| 亚洲精一区二区三区| 青青国产精品| 日本不卡免费高清视频在线| 成人自拍av| 亚洲综合不卡| 视频在线在亚洲| 亚洲综合专区| 免费一级欧美在线观看视频 | 国产图片一区| 国产一区二区三区四区二区 | 日韩中文字幕视频网| 久久免费影院| 蜜臀久久99精品久久久久久9| 红杏一区二区三区| 麻豆精品91| 日韩在线看片| 欧美日韩亚洲国产精品| 久久精品高清| 国产精品片aa在线观看| 国产真实久久| 激情久久99| 欧美在线观看天堂一区二区三区| 欧美日韩在线网站| 手机在线电影一区| 国产精品黄网站| 丝袜美腿一区二区三区| 成人va天堂| 国产精品毛片一区二区在线看| 亚洲一二av| 一区久久精品| 偷拍欧美精品| 国产精品99一区二区| 最近高清中文在线字幕在线观看1| 另类亚洲自拍| 久久xxxx| 国产精品视频一区二区三区 | 国产精品久久久久毛片大屁完整版| 日韩视频免费| 欧美粗暴jizz性欧美20| 中国字幕a在线看韩国电影| 另类综合日韩欧美亚洲| 国产精品宾馆| 久久一区视频| 热三久草你在线| 999久久久91| 日韩av首页| 国产一区二区三区探花| 国产日本精品| 久久精品一区二区国产| 麻豆理论在线观看| 成人免费电影网址| 国产一级一区二区| 免费人成在线不卡| 欧美久久久网站| 午夜精品久久久久久久久久蜜桃| 日韩精品免费一区二区在线观看| 亚洲二区免费| 免费成人性网站| 国产高清精品二区| 欧美aa在线观看| 日韩精品一区第一页| 日韩二区在线观看| 一区二区精彩视频| 国产精品1区| 久久精品电影| 久久伊人亚洲| 天海翼精品一区二区三区| 欧美永久精品| 久久精品成人| 欧美影院精品| 国产一区视频在线观看免费| 亚洲精品精选| 毛片在线网站| 亚洲开心激情| 香蕉久久99| 欧美a级一区二区| 2023国产精品久久久精品双| 视频一区国产视频| 日本蜜桃在线观看视频| 日韩精品欧美大片| 日本午夜大片a在线观看| 婷婷五月色综合香五月| av资源亚洲| 国产欧美啪啪| 综合欧美亚洲| 欧美午夜不卡影院在线观看完整版免费| 亚洲九九精品| 欧美日韩精品一本二本三本| 国产精品黑丝在线播放| 日韩一区中文| 亚洲永久字幕| 激情偷拍久久| 美女性感视频久久| 日韩精品高清不卡| 石原莉奈一区二区三区在线观看| 国产99在线| 精品免费av一区二区三区| 亚洲乱亚洲高清| 在线看片日韩| 亚洲视频二区| 欧美日韩国产在线一区| 一区二区三区网站| 亚洲激情久久| 日韩精品2区| 久久蜜桃精品| 久久久久久久久丰满| 欧美日韩视频网站| 国产精品伦一区二区| 国产伦乱精品| 久久av免费看| 色综合五月天| 欧美综合另类| 亚洲一区国产| 日韩三级视频| 麻豆精品在线| 成人久久一区| 久久最新视频| 国产精品一区毛片| 久久亚洲精品中文字幕| 日韩中文首页| 久久高清免费观看| 日本成人中文字幕在线视频| 日韩中文字幕一区二区三区| 日韩欧美久久| 吉吉日韩欧美| 免费欧美日韩| 久久精品资源| 日韩精品一卡| 精品国产麻豆| 久久在线视频免费观看| 亚洲伊人精品酒店| 美女久久久久久| 欧美另类综合| 国产精品1区| 亚洲欧美日韩高清在线| 亚洲精品少妇| 中文另类视频| 伊人精品在线| 久久一二三区| 久久裸体视频| 天堂av一区| 91精品国产乱码久久久久久久| 日韩av不卡一区二区| 久久91视频| 亚洲精品影院在线观看| 久久久久免费| 欧美日本一区| 久久www成人_看片免费不卡| www.51av欧美视频| 久久国产婷婷国产香蕉| 亚洲激情二区| 亚洲播播91| 日韩av不卡在线观看| 婷婷综合激情| 亚洲a在线视频| 福利一区视频| 国产精品激情| 亚洲另类av| 亚洲欧美久久久| 久久久777| 欧美日韩视频网站| 激情综合婷婷| 久久爱www.| 捆绑调教美女网站视频一区| 日韩超碰人人爽人人做人人添| 亚洲一区区二区| 在线综合欧美| 久久精品二区三区| 日韩网站中文字幕| 久久精品官网| 久久中文字幕av| 99视频精品全部免费在线视频| 日本不卡免费高清视频在线| 国产成人精品一区二区三区视频 | 午夜久久久久| a日韩av网址|