亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

用Js實現的動態增加表格示例自己寫的

2019-11-20 21:52:06
字體:
來源:轉載
供稿:網友
復制代碼 代碼如下:

function addEvent (o,c,h){
if(o.attachEvent){
o.attachEvent('on'+c,h);
}else{
o.addEventListener(c,h,false);
}
return true;}
var selectRow;//頁面級js變量,用來存被選中的行,好在彈出窗口中對該行賦值
function addnode()
{
var table=document.getElementById("Dy_table");
var tr=table.insertRow();
var cell0=tr.insertCell();
var cell1=tr.insertCell();
var cell2=tr.insertCell();
var cell3=tr.insertCell();
var cell4=tr.insertCell();
var cell5=tr.insertCell();
var cell6=tr.insertCell();
var cell7=tr.insertCell();
var cell8=tr.insertCell();
var cell9=tr.insertCell();
var hidden1=document.createElement("<input name='Dy_hd_cpdm' onpropertychange='textChange(this)' type='hidden' >");
var hidden2=document.createElement("<input name='Dy_hd_sx' type='hidden' >");
var hidden3=document.createElement("<input name='Dy_hd_mxid' type='hidden' >");
var hidden4=document.createElement("<input name='Dy_hd_rowState' type='hidden' value='1'>");//行狀態
var hidden5=document.createElement("<input name='Dy_hd_dj' type='hidden' value='0'>");//隱藏單價
var input1=document.createElement("<Input type='text' ondblclick='selectLj(this)' style='width:100px' name='Dy_text_ljh' >");
var input2=document.createElement("<Input type='text' style='width:100px' name='Dy_text_cpmc' >");
var input3=document.createElement("<Input type='text' onKeyPress='onlyNumberIn1(this)' style='width:40px' value='1' name='Dy_text_sl' >");
var input4=document.createElement("<Input type='text' onKeyPress='onlyNumberIn(this)' style='width:60px' name='Dy_text_dj' >");
var input5=document.createElement("<Input type='text' style='width:100px' name='Dy_text_sccj' >");
var input6=document.createElement("<select name='Dy_select_clly' >");
var input7=document.createElement("<Input type='text' readonly='true' style='width:40px' name='Dy_text_glf' >");
var input8=document.createElement("<Input type='text' readonly='true' style='width:60px' name='Dy_text_je' >");
var input9=document.createElement("<Input type='button' name='del' value='刪 除' class='input-button' onclick='delnode1(this)' >")
var oOption1=document.createElement("option");
var oOption2=document.createElement("option");
var oOption3=document.createElement("option");
var oOption4=document.createElement("option");
input6.options.add(oOption1);
input6.options.add(oOption2);
input6.options.add(oOption3);
input6.options.add(oOption4);
oOption1.innerText="合同件";
oOption1.value="合同件";
oOption2.innerText="外購件";
oOption2.value="外購件";
oOption3.innerText="備件部";
oOption3.value="備件部";
oOption4.innerText="廠家供件";
oOption4.value="廠家供件";
var rowIndex;
rowIndex = table.rows.length-2;
var rowCount = table.rows[0].cells[0].getElementsByTagName("input")[2].value;//用戶可見的行數
cell0.innerText=parseInt(rowCount)+1;
table.rows[0].cells[0].getElementsByTagName("input")[2].value = parseInt(rowCount)+1;
hidden2.value = parseInt(table.rows[0].cells[0].getElementsByTagName("input")[1].value) + 1;
table.rows[0].cells[0].getElementsByTagName("input")[1].value=hidden2.value;
cell1.appendChild(input1);
cell1.appendChild(hidden1);//產品代碼
cell1.appendChild(hidden2);//內部順序
cell1.appendChild(hidden3);//該行的Id,用來修改和刪除
cell1.appendChild(hidden4);//該行的狀態
cell2.appendChild(input2);
cell3.appendChild(input3);
cell4.appendChild(input4);
cell4.appendChild(hidden5);
cell5.appendChild(input5);
cell6.appendChild(input6);
cell9.appendChild(input9);
cell8.appendChild(input8);
cell7.appendChild(input7);
var tt=function(obj)
{
return function(){textChange(obj);}
}
var ttt=function(obj)
{
return function(){selectChange(obj);}
}
addEvent(input1,"change",tt(input1));
addEvent(input2,"change",tt(input1));
addEvent(input3,"change",tt(input1));
addEvent(input4,"change",tt(input1));
addEvent(input5,"change",tt(input1));
addEvent(input6,"change",ttt(input6));
addEvent(input7,"change",tt(input1));
// addEvent(input8,"change",tt(input1));
}
function delnode()//刪除時的事件
{
var table=document.getElementById("Dy_table");
var rowCount = table.rows[0].cells[0].getElementsByTagName("input")[2].value;//用戶可見的行數
var row;//保存最后一個可見的row
for( var i=table.rows.length-1; i>=0 ;i--)
{
if(table.rows[i].style.display!="none")
{
row=table.rows[i];
break;
}
}
var rowId=row.cells[1].getElementsByTagName("input")[3].value;
if( rowCount > 1 )
{
if(rowId=="")//新增的行未寫入數據庫時,直接刪除
{
row.removeNode(true);
table.rows[0].cells[0].getElementsByTagName("input")[2].value = parseInt(rowCount) - 1;
}
else//需要從數據庫刪除的,置上刪除標記
{
row.style.display="none";
row.cells[1].getElementsByTagName("input")[4].value = "2";
table.rows[0].cells[0].getElementsByTagName("input")[2].value = parseInt(rowCount-1);
}
}
else
{
if(rowId == "")//新增的行未寫入數據庫時,清空
{
row.cells.item(1).getElementsByTagName("input")[0].value="";
row.cells.item(1).getElementsByTagName("input")[1].value="";
row.cells.item(2).getElementsByTagName("input")[0].value="";
row.cells.item(3).getElementsByTagName("input")[0].value="1";
row.cells.item(4).getElementsByTagName("input")[0].value="";
row.cells.item(7).getElementsByTagName("input")[0].value="";
row.cells.item(5).getElementsByTagName("input")[0].value="";
row.cells.item(6).getElementsByTagName("select")[0].selectedIndex=0;
}
else//需要從數據庫刪除的,置上刪除標記
{
row.style.display="none";
row.cells[1].getElementsByTagName("input")[4].value = "2";
table.rows[0].cells[0].getElementsByTagName("input")[2].value = parseInt(rowCount) - 1;
addnode();
}
}
setClf();
}
function delnode1(o)//刪除時的事件
{
var tr=o.parentElement.parentElement;
var table=document.getElementById("Dy_table");
var rowCount = table.rows[0].cells[0].getElementsByTagName("input")[2].value;//用戶可見的行數
var rowId=tr.cells[1].getElementsByTagName("input")[3].value;
if( rowCount > 1 )
{
if(rowId=="")//新增的行未寫入數據庫時,直接刪除
{
tr.removeNode(true);
table.rows[0].cells[0].getElementsByTagName("input")[2].value = parseInt(rowCount) - 1;
}
else
{
tr.style.display="none";
tr.cells[1].getElementsByTagName("input")[4].value = "2";
table.rows[0].cells[0].getElementsByTagName("input")[2].value = parseInt(rowCount-1);
}
}
else
{
if(rowId=="")//新增的行未寫入數據庫時,直接清空
{
tr.cells.item(1).getElementsByTagName("input")[0].value="";
tr.cells.item(1).getElementsByTagName("input")[1].value="";
tr.cells.item(2).getElementsByTagName("input")[0].value="";
tr.cells.item(3).getElementsByTagName("input")[0].value="1";
tr.cells.item(4).getElementsByTagName("input")[0].value="";
tr.cells.item(7).getElementsByTagName("input")[0].value="";
tr.cells.item(5).getElementsByTagName("input")[0].value="";
tr.cells.item(6).getElementsByTagName("select")[0].selectedIndex=0;
}
else//需要從數據庫刪除的,置上刪除標記
{
tr.style.display="none";
tr.cells[1].getElementsByTagName("input")[4].value = "2";
table.rows[0].cells[0].getElementsByTagName("input")[2].value = parseInt(rowCount) - 1;
addnode();
}
}
//以下循環用于從中間刪除時更新表格行號
rowCount = table.rows[0].cells[0].getElementsByTagName("input")[2].value;
for( var i= 1,p = 1; i < table.rows.length ;i++)
{
if(table.rows[i].style.display!="none")
{
table.rows[i].cells[0].innerText = p;
p++;
}
}
setClf();
}
//修改時發生的事件
function textChange(o)
{
setClf();
var tr=o.parentElement.parentElement;
var rowState = tr.cells[1].getElementsByTagName("input")[4].value;
if( rowState == "1")
return;
else
tr.cells[1].getElementsByTagName("input")[4].value = "3";
}
//下拉框選項改變setClf()是計算金額的,這里面沒有給出來
function selectChange(o)
{
var tr=o.parentElement.parentElement;
var glf = tr.cells[7].getElementsByTagName("input")[0];
var dj = tr.cells[4].getElementsByTagName("input")[0];
var dj1 = tr.cells[4].getElementsByTagName("input")[1];
if( o.selectedIndex==0)//合同件
{
glf.value='0.00';
dj.value=dj1.value;
setClf();
return;
}
if( o.selectedIndex==1)//外購件
{
glf.value='0.20';
dj.value=dj1.value;
setClf();
return;
}
if( o.selectedIndex==2)//備件部
{
glf.value='0.00';
dj.value=dj1.value;
setClf();
return;
}
if( o.selectedIndex==3)//廠家供件
{
glf.value='0.00';
dj.value='0.00';
dj.readOnly=true;
setClf();
return;
}
}
//提交前驗證數據,保證沒有重復的行
function checkSameData()
{
var table=document.getElementById("Dy_table");
// var rowCount = table.rows[0].cells[0].getElementsByTagName("input")[2].value;//用戶可見的行數
for( var i= 1; i < table.rows.length ;i++)
{
if(table.rows[i].style.display == "none"||table.rows[i].cells[1].getElementsByTagName("input")[1].value=="") continue;
for( var p= i + 1; p < table.rows.length ;p++)
{
if(table.rows[p].style.display == "none") continue;
if(table.rows[i].cells[1].getElementsByTagName("input")[1].value.replace(//s+$/g,"") ==
table.rows[p].cells[1].getElementsByTagName("input")[1].value.replace(//s+$/g,""))
{alert("零件部分存在重復的項,不能保存!");return false;}
}
}
return true;
}
//零件窗口是否打開
var dialogWin;
function selectLj(o)//選零件
{
if(dialogWin == null)
{
selectRow = o.parentElement.parentElement;//將行賦值給全局變量
dialogWin = window.showModelessDialog("../jddgl/Select_lj.aspx",window,
"center:yes;dialogWidth:550px;dialogHeight:400px;help:no;status:no;");
}
}

=======
前臺頁面
復制代碼 代碼如下:

<table id="Dy_table" width="760" cellpadding="0" style=" border-top:solid 1px #9cf" class="tableStyle" cellspacing="0">
<tr>
<td>序號<input id="pageState" name="pageState" type="hidden" value="0" /> <%--頁面狀態--%>
<input id="pageRows" name="pageRows" type="hidden" value="1" /> <%--總行數,包括隱藏的--%>
<asp:HiddenField ID="HF_tableRows" runat="server" Value="1" /> <%--用戶可見行數--%>
</td>
<td>零件號</td>
<td>零件名稱</td>
<td>數量</td>
<td>單價</td>
<td>生產廠家</td>
<td>材料來源</td>
<td>管理費</td>
<td>合計</td>
<td>操作</td>
</tr>
<tr><td>1</td><td><input name='Dy_text_ljh' style='width:100px' ondblclick='selectLj(this)' onchange='textChange(this)' type='text' />
<input name='Dy_hd_cpdm' type='hidden' onpropertychange='textChange(this)' title='產品代碼' />
<input name='Dy_hd_sx' type='hidden' value='1' title='內部順序' />
<input name='Dy_hd_mxid' type='hidden' value='' title='該行的Id,用來修改和刪除' />
<input name='Dy_hd_rowState' type='hidden' value='1' title='該行的狀態' />
</td><td><input name='Dy_text_cpmc' style='width:100px' onchange='textChange(this)' type='text' /></td>
<td><input name='Dy_text_sl' value='1' onKeyPress='onlyNumberIn1(this)' onchange='textChange(this)' style='width:40px' type='text' /></td>
<td><input name='Dy_text_dj' onKeyPress='onlyNumberIn(this)' onchange='textChange(this)' style='width:60px' type='text' /><input name='Dy_hd_dj' type='hidden' value='0'/></td>
<td><input name='Dy_text_sccj' onchange='textChange(this)' style='width:100px' type='text' /></td>
<td><select name='Dy_select_clly' onchange='selectChange(this)' ><option value='合同件'>合同件</option>
<option value='外購件'>外購件</option><option value='備件部'>備件部</option>
<option value='廠家供件'>廠家供件</option></select></td>
<td><input name='Dy_text_glf' readonly='true' onchange='textChange(this)' style='width:40px' type='text' value='0.00' /></td>
<td><input name='Dy_text_je' readonly='true' style='width:60px' type='text' /></td>
<td><input name='del' type='button' value='刪 除' class='input-button' onclick='delnode1(this)' /></td></tr>

</table>

項目需要這種功能,前前后后用了幾種辦法,我覺得還是這種比較好(畢竟是我花了蠻多時間寫的,呵呵),js不怎么熟練,希望有朋友能指點幫助改進和提高。失敗的作品,不兼容FF,衰!
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久精品成人欧美大片| 国产亚洲视频在线观看| 国产精品久久久久久久午夜| 亚洲国产精品久久久| 91夜夜未满十八勿入爽爽影院| 欧美性xxxx18| 精品久久久免费| 亚洲欧美日韩一区二区在线| 欧美最顶级丰满的aⅴ艳星| 国产成人精品久久亚洲高清不卡| 国产精品久久激情| 国模精品视频一区二区三区| 欧美电影免费观看高清| 久久精品久久久久| 欧美日韩精品在线视频| 欧美极品欧美精品欧美视频| 久久久久久久久久国产| 精品爽片免费看久久| 中文字幕免费精品一区高清| 日韩精品在线电影| 久久久久久久一| 97av视频在线| 亚洲成人精品在线| 66m—66摸成人免费视频| 91夜夜未满十八勿入爽爽影院| 中文字幕在线观看日韩| 亚洲欧美国产精品va在线观看| 中文字幕亚洲综合久久| 亚洲性av网站| 国产精品自产拍高潮在线观看| 日韩电影免费在线观看| 91在线视频成人| 久久综合免费视频| 精品亚洲精品福利线在观看| 国产精品白丝av嫩草影院| 亚洲欧美视频在线| 在线亚洲欧美视频| 国产精品香蕉在线观看| 日韩精品久久久久| 国产精品视频网站| 久久精品国亚洲| 国产精品jvid在线观看蜜臀| 久久综合88中文色鬼| 久热国产精品视频| 欧美日本高清一区| 青青久久av北条麻妃海外网| 欧美中文在线观看国产| 欧美性生交xxxxxdddd| 高清一区二区三区日本久| 成人免费观看网址| 亚洲成人动漫在线播放| 亚洲国产精品99久久| 亚洲性av在线| 亚洲欧美国产精品专区久久| 另类视频在线观看| 国产精品大陆在线观看| 欧美激情免费看| 久久久av亚洲男天堂| 国产ts一区二区| 日韩精品视频中文在线观看| 最近的2019中文字幕免费一页| 日韩av色在线| 欧美国产日韩xxxxx| 97人洗澡人人免费公开视频碰碰碰| 欧日韩在线观看| 久久亚洲精品小早川怜子66| 超薄丝袜一区二区| 欧美日韩国产精品一区二区三区四区| 亚洲va欧美va在线观看| 国产精自产拍久久久久久蜜| 欧美黑人一区二区三区| 国产精品av在线| 91产国在线观看动作片喷水| 91香蕉嫩草影院入口| xxxxxxxxx欧美| 国产精品偷伦视频免费观看国产| 亚洲欧美资源在线| 欧美成人激情在线| 日韩av在线网页| 亚洲美女自拍视频| 国产69精品99久久久久久宅男| 91免费国产网站| 91亚洲精品久久久| 国产成人精品久久久| 97**国产露脸精品国产| 亚洲人线精品午夜| 国产成人一区二| 国产美女直播视频一区| 羞羞色国产精品| 亚洲欧洲日产国产网站| xxxxxxxxx欧美| 国产精品尤物福利片在线观看| 中文字幕欧美精品日韩中文字幕| 岛国视频午夜一区免费在线观看| 亚洲男人天堂视频| 亚洲天天在线日亚洲洲精| 久久躁狠狠躁夜夜爽| 亚洲乱码av中文一区二区| 91社影院在线观看| 欧美国产日韩免费| 日韩一级黄色av| 亚洲精品影视在线观看| 亚洲第一视频网站| 久久久久久久久久久网站| 国产在线观看91精品一区| 操人视频在线观看欧美| 亚洲国产高清高潮精品美女| 日韩精品欧美激情| 国产精品高清网站| 欧美国产激情18| 亚洲性生活视频在线观看| 国产精品www网站| 91精品国产91| 亚洲欧洲日韩国产| 亚洲毛片在线看| 亚洲欧美国产日韩天堂区| 国产这里只有精品| 俺去亚洲欧洲欧美日韩| 亚洲午夜精品久久久久久性色| 欧美大片在线影院| 日本精品一区二区三区在线播放视频| 日韩免费av片在线观看| 国产精品成人av性教育| 亚洲免费av电影| 中文字幕亚洲欧美日韩在线不卡| 精品在线小视频| 欧美专区福利在线| 中文字幕在线精品| 亚洲aⅴ日韩av电影在线观看| 中文欧美在线视频| 国产欧美精品一区二区三区介绍| 日韩精品久久久久久福利| 国产欧美精品在线| 亚洲v日韩v综合v精品v| 色偷偷噜噜噜亚洲男人的天堂| 日韩亚洲综合在线| 91免费精品视频| 夜夜嗨av色综合久久久综合网| 欧美日韩国产区| 国产精品video| 亚洲日韩中文字幕| 日韩小视频在线| 欧美www视频在线观看| 最近2019年好看中文字幕视频| 欧洲永久精品大片ww免费漫画| 欧美综合在线观看| 日韩精品视频中文在线观看| 免费成人高清视频| 97国产suv精品一区二区62| 永久免费精品影视网站| 欧美激情第1页| 国产午夜精品麻豆| 亚洲成年人影院在线| 51久久精品夜色国产麻豆| 91超碰caoporn97人人| 欧美大成色www永久网站婷| 综合136福利视频在线| 亚洲欧洲国产精品| 国产精品免费网站| 欧美精品成人91久久久久久久| 大胆人体色综合| 久久久久久久久久久国产| 欧美极品少妇xxxxⅹ裸体艺术| 18一19gay欧美视频网站|