动态增加行数据的自动计算?
以下是自动计算的方法
function change(e) {
e=e||event;
var tag=e.target||e.srcElement;
//用正则取出最后的数字编号,注意生成新行时的命名区别是按最后的数字来区别
var str;
if(tag.name)
str=tag.name;
else
{
alert("名称丢失!");
return;
}
var reg=/[a-z]*(\d+)/i
var m=str.match(reg);
if(m==null)
{
alert("数字编号丢失!");
return;
}
var NowIndex=m[1];
var txt_hwmc, txt_jianshu,txt_danjia,txt_qsj,txt_maoli,txt_cyf,txt_zyf,txt_bxe,txt_huikou,txt_ztj,txt_zzl;
txt_hwmc = getValue(document.input1["hwmc"+NowIndex]);
txt_jianshu = getValue(document.input1["jianshu"+NowIndex]);
txt_ztj = getValue(document.input1["ztj"+NowIndex]);
txt_zzl = getValue(document.input1["zzl"+NowIndex]);
txt_danjia = getValue(document.input1["danjia"+NowIndex]);
txt_cyf = getValue(document.input1["cyf"+NowIndex]);
txt_bxe = getValue(document.input1["bxe"+NowIndex]);
txt_huikou = getValue(document.input1["huikou"+NowIndex]);
if((txt_jianshu!=0)&&(txt_ztj!=0))
{
txt_cyf=Math.round(txt_danjia * txt_ztj);
txt_maoli=Math.round((txt_danjia-txt_qsj)*txt_ztj);
}
else if((txt_jianshu!=0)&&(txt_zzl!=0))
{
txt_cyf=Math.round(txt_danjia * txt_zzl);
txt_maoli=Math.round((txt_danjia-txt_qsj)*txt_zzl);
}
else
{
txt_cyf=Math.round(txt_danjia * txt_jianshu);
txt_maoli=Math.round(txt_danjia-txt_qsj);
}
bxfbl=500;
txt_zyf = txt_cyf + (txt_bxe*1)/bxfbl + (txt_huikou * 1);
document.input1["ztj"+NowIndex].value = Math.round(Math.floor(( txt_ztj *10000)/10))/1000;
document.input1["zzl"+NowIndex].value = Math.round(Math.floor(( txt_zzl *10000)/10))/1000;
document.input1["cyf"+NowIndex].value = Math.round(Math.floor(( txt_cyf *10000)/10))/1000;
document.input1["zyf"+NowIndex].value = Math.round(Math.floor(( txt_zyf *10000)/10))/1000;
getTotal();
}
[解决办法]
知道为什么吗?应为你获得到的文本框的id存在问题也就是说你没有正确的获得到他的id 实际上你完全没有必要这样写你用循环去判断就可以了,循环整个table用tableObj为已经获得到的table对象然后进行循环
如
for(var i=0;i<table.rows.length;i++)
{
var xObj=tableObj.rows[i].cell[0].all[0];//获得文本框对象
}
这样做是绝对不会存在问题的,关键是看你获得的对象是不是存在问题
[解决办法]
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<div style="height:230px;width:99.9%;overflow:auto;">
<table nowrap id="CommidityGrid" border="0" cellspacing="1" cellpadding="0" BGCOLOR="#949293" width="100%">
<Div>
<Script Language="javascript">
// 删除一行
function DeleteRow(currow) {
document.all["CommidityTypeID" + currow].value = "";
CommidityGrid.deleteRow(CommidityGrid.rows("GridRow" + currow).rowIndex);
}
function zhjs(coun){//货品折合计算
var ss="";
var mm="";
var aa=document.all["PyOrdCount"+coun].value;
var bb=document.all["PyOrdNum"+coun].value;
var cc=document.all["PyOrdDw"+coun].value;
var aa1=Math.round(aa/1);
for(var i=0;i<GNum.length;i++){
if(bb==GNum[i]){
for(var jj=0;jj<UCount[i].length;jj++){
if(cc==UName[i][jj]){
aa1=aa1*UCount[i][jj]
//alert(aa1)
}
}
for(var j=0;j<UCount[i].length;j++)
if(aa1>=UCount[i][j]&&UZhbz[i][j]==0){
//alert(aa1);
mm=Math.round(UCount[i][j]/1);
ss+=parseInt(aa1/mm)+UName[i][j];
aa1=aa1%mm;
}
}
}
//alert(ss);
document.all["PyOrdZh" + coun].value =ss;
}
function GridSelectTree(row)
{
var temp=0;
var fruit="";
for(var i=0; i<Form1.rownum.value;i++)
{
if (document.all("PyOrdNum" + i)!=null)
if (document.all("PyOrdNum" + i).value!="")
{
temp++;
if(temp==1)
{
fruit= document.all("PyOrdNum" + i).value;}
else
{
fruit= fruit+","+document.all("PyOrdNum" + i).value;
}
}
}
window.open('../SysSelect/SelectGoodsTwo.jsp?PageNo=1'+'&nInputGridCurRow='+row+'&fruit='+fruit+'&RowNum='+RowNum,'','resizeable=no,menubar=no,scrollbars=yes,width=700,height=500,left=190+'+(screen.availWidth-700)/2+' ,top='+(screen.availHeight-500)/2) ;
}
function getIndex()
{
intRowIndex = event.srcElement.parentElement.rowIndex;
pos.innerText = intRowIndex;
}
var RowNum="<%=BB.length+1%>";
function insertRow2()
{
var objRow = CommidityGrid.insertRow();
RowNum++;
var i=RowNum;
Form1.rownum.value=i;
objRow.id="GridRow"+i;
var aaaa1="1";
var aaaa2='1';
var objCel1 = objRow.insertCell(0);
objCel1.innerHTML='<input type="text" style="width:100%" name="PyOrdNum'+(i)+'" class="ClientTableflateditbox" onclick="GridSelectTree('+(i)+')" >';
var objCel2= objRow.insertCell(1);
objCel2.innerHTML='<input type="text" style="width:100%" name="PyOrdName'+(i)+'" class="ClientTableflateditbox" onclick="GridSelectTree('+(i)+')">';
var objCel3= objRow.insertCell(2);
objCel3.innerHTML='<input type="text" style="width:100%" name="PyOrdAd'+(i)+'" class="ClientTableflateditbox" onclick="GridSelectTree('+(i)+')" >';
var objCel4 = objRow.insertCell(3);
objCel4.innerHTML='<input type="text" style="width:100%" name="PyOrdGg'+(i)+'" class="ClientTableflateditbox" onclick="GridSelectTree('+(i)+')" >';
var objCel5= objRow.insertCell(4);
objCel5.innerHTML='<select size="1" name="PyOrdDw'+(i)+'" style="width:80px;font-size:12px" onchange="javascript:zhjs('+(i)+')"><option value="" > </option></select>';
objCel5.align="center";
var objCel6= objRow.insertCell(5);
objCel6.innerHTML='<input type="text" style="width:100%" name="PyOrdPrice'+(i)+'" class="ClientTableflateditbox" onKeyPress="return(currencyFormat(this,'+aaaa1+','+aaaa2+',event));">';
var objCel7 = objRow.insertCell(6);
objCel7.innerHTML='<input type="text" style="width:100%" name="PyOrdCount'+(i)+'" class="ClientTableflateditbox" onchange="javascript:zhjs('+(i)+')" >';
var objCel8= objRow.insertCell(7);
objCel8.innerHTML='<input type="text" style="width:100%" name="PyOrdSPrice'+(i)+'" class="ClientTableflateditbox" readonly="">';
var objCel9= objRow.insertCell(8);
objCel9.innerHTML='<input type="text" style="width:100%" name="PyOrdZh'+(i)+'" class="ClientTableflateditbox" readonly="">';
var objCel10= objRow.insertCell(9);
objCel10.innerHTML='<img src="../images/ndelete.gif" width="16" height="16" onclick="DeleteRow('+(i)+')" style="cursor:hand" title = "">';
objCel10.align="center";
var objCel11= objRow.insertCell(10);
objCel11.innerHTML='<input type="hidden" name="CommidityTypeID'+(i)+'" value="">';
///objRow.attachEvent("onclick",getIndex);
objCel1.style.background="white"
objCel2.style.background="white"
objCel3.style.background="white"
objCel4.style.background="white"
objCel5.style.background="white"
objCel6.style.background="white"
objCel7.style.background="white"
objCel8.style.background="white"
objCel9.style.background="white"
objCel10.style.background="white"
objCel11.style.background="white"
// objCel2.attachEvent("onclick",GridSelectTree(++i));
}
</Script>
</Div>
<tr class="ListTableHeader1" align="center" height="20px" bgcolor="#FFFFFF">
<td width="10%">货品编号</td>
<td width="15%">货品名称</td>
<td width="15%">产地</td>
<td width="10%">货品规格</td>
<td width="9%">单位</td>
<td width="10%">单价</td>
<td width="8%">数量</td>
<td width="10%">总价</td>
<td width="10%">折合包装</td>
<td width="3%"> </td>
<td style="display:none"></td>
</tr>
<%//循环输出货品浏览信息
int n=1;
while(n<BB.length+1){ %>
<tr bgColor="#FFFFFF" ID="GridRow<%=n %>">
<td><input type="text" style="width:100%" name="PyOrdNum<%=n%>" class="ClientTableflateditbox" onFocus="this.style.background='#90EE90'" onkeydown=" " onBlur="this.style.background='#FFFFFF';" onclick="GridSelectTree('<%=n%>')" value="<%=BB[n-1][1]%>"></td>
<td><input type="text" style="width:100%" name="PyOrdName<%=n%>" class="ClientTableflateditbox" onFocus="this.style.background='#90EE90'" onkeydown=" " onBlur="this.style.background='#FFFFFF';" onclick="GridSelectTree('<%=n%>')" value="<%=BB[n-1][2]%>"></td>
<td><input type="text" style="width:100%" name="PyOrdAd<%=n%>" class="ClientTableflateditbox" onFocus="this.style.background='#90EE90'" onBlur="this.style.background='#FFFFFF';" onclick="GridSelectTree('<%=n%>')" value="<%=BB[n-1][3]%>"></td>
<td><input type="text" style="width:100%" name="PyOrdGg<%=n%>" class="ClientTableflateditbox" onFocus="this.style.background='#90EE90'" onBlur="this.style.background='#FFFFFF';" onclick="GridSelectTree('<%=n%>')" value="<%=BB[n-1][4]%>"></td>
<td align="center"><select size="1" name="PyOrdDw<%=n%>" style="width:80px;font-size:12px" onchange="javascript:zhjs('<%=n%>')">
<option value="<%=BB[n-1][5]%>" ><%=BB[n-1][5]%> </option>
</select>
</td>
<td><input type="text" style="width:100%" name="PyOrdPrice<%=n%>" class="ClientTableflateditbox" onFocus="this.style.background='#90EE90'" onBlur="this.style.background='#FFFFFF';" value="<%=BB[n-1][7]%>" onKeyPress="return(currencyFormat(this,',','.',event));"></td>
<td><input type="text" style="width:100%" name="PyOrdCount<%=n%>" class="ClientTableflateditbox" onFocus="this.style.background='#90EE90'" onBlur="this.style.background='#FFFFFF';" value="<%=BB[n-1][8]%>" onchange="javascript:zhjs('<%=n%>')"></td>
<td><input type="text" style="width:100%" name="PyOrdSPrice<%=n%>" class="ClientTableflateditbox" onFocus="this.style.background='#90EE90'" onBlur="this.style.background='#FFFFFF';" value="<%=BB[n-1][10]%>" readonly=""></td>
<td><input type="text" style="width:100%" name="PyOrdZh<%=n%>" class="ClientTableflateditbox" onFocus="this.style.background='#90EE90'" onBlur="this.style.background='#FFFFFF';" value="<%=BB[n-1][11]%>" readonly=""></td>
<td align="center"><img src="../images/ndelete.gif" width="16" height="16" style="cursor:hand" onmouseover="this.src='../images/hdelete.gif'" onmouseout="this.src='../images/ndelete.gif'" onclick="DeleteRow('<%=n%>')" ></td>
<td style="display:none"><input type="hidden" name="CommidityTypeID<%=n%>"></td>
</tr>
<%n++;}%>
</table>
<br>
<table>
<tr>
<td><input type="button" onclick="insertRow2()" value="添加行" class="ButtonQuery">
<input type="hidden" name="rownum" value="<%=BB.length%>">
</td>
</tr>
</table>
</div>
给你参考,类似。
[解决办法]
今天刚写一个,做参考
<div id="divContent"> <div> <table cellspacing="0" border="0" class="SSWTable"> <tr style='background-color: #F4F9FF; font-weight: bold;'> <td style="width: 10%"> 序号 </td> <td style="width: 10%"> 物资编码 </td> <td style="width: 15%"> 物资说明 </td> <td style="width: 10%"> 单位 </td> <td style="width: 10%"> 申请量 </td> <td style="width: 10%"> 已入库 </td> <td style="width: 10%"> 单价 </td> <td style="width: 10%"> 总价 </td> <td style="width: 15%"> 备注 </td> </tr> <tr> <td> <input id="btnAddContent0" type="button" value="增加" class="btn_Mgt_Style" onclick="addContent()" /> </td> <td> <input id="txtMCode0" type="text" name="txtMCode" readonly="readonly" onclick="selectMateril(this);" style="width: 100%" /> </td> <td> <input id="txtMName0" type="text" name="txtMName" readonly="readonly" style="width: 100%" /> </td> <td> <input id="txtUnit0" type="text" name="txtUnit" readonly="readonly" style="width: 100%" /> </td> <td> <input id="txtAppNum0" type="text" name="txtAppNum" onblur="handleCharacter(this)" style="width: 100%" /> </td> <td> <input id="txtNum0" type="text" name="txtNum" onblur="handleCharacter(this)" style="width: 100%" /> </td> <td> <input id="txtPrice0" type="text" name="txtPrice" onblur="handleCharacter(this)" style="width: 100%" /> </td> <td> <input id="txtTotal0" type="text" name="txtTotal" style="border-width: 0px; width: 100%; text-align: center;" readonly="readonly" value="自动" /> </td> <td> <input id="txtMsg0" type="text" name="txtMsg" onblur="handleCharacter(this)" style="width: 100%" /> </td> </tr> </table> </div> </div>