请高手指点一下代码!

RedSunMan 2003-09-01 03:16:05

<script language='javascript'>
var CCash=0;
var intRowIndex=0;
var intIt=0;
var cashcc=0;
var cashccase=0;
var flag=0;
var cashcc11=0;
//插入一条记录
function insertRow(tbIndex)
{
var objRow=myTable.insertRow(tbIndex); //根据添加按钮来给表插入行
var objCel=objRow.insertCell(0); //插入行后就插入第一列
objCel.innerHTML="<input type=checkbox name='CheckName'>"//在列中插入数据,这里可以插入下拉框和文本框
var objCel=objRow.insertCell(1); //插入第二列
//objCel.innerHTML="<input type=text size=16 name=cash value='名称'>";
objCel.innerHTML="<SELECT id=select1 name=select_smoke> <OPTION selected value=1001>红梅</OPTION><OPTION value=1002>玉西</OPTION><OPTION value=1003>一品梅</OPTION><OPTION value=''></OPTION></SELECT>";
var objCel=objRow.insertCell(2); //插入第二列
objCel.innerHTML="<input type=text size=14 name=cashnum value='' onblur='cashnumonblur("+tbIndex+")' >";
var objCel=objRow.insertCell(3); //插入行后就插入第三列
objCel.innerHTML="<input type=text size=14 name=cash value='' onblur='textonblur("+tbIndex+")'>";
var objCel=objRow.insertCell(4); //插入行后就插入第四列
objCel.innerHTML="<input type=text size=14 name='addcash' value='' disabled>";
objRow.attachEvent('onclick',getIndex); //在单击某行的时候触发getIndex事件
//objRow.style.background='pink'; //设定添加行的颜色
intIt=intIt+1;
}
//触发删除按钮的时候删除行。该功能暂时不用吧
function deleteRow()
{
if(intIt==0)
{
alert('没有记录可以删除!');
return false;
}
for(i=1;i<tablename.CheckName.length;i++)
{
if (tablename.CheckName[i].checked)
{
alert(tablename.cashnum[i].value)
tablename.tt1.value=tablename.tt1.value-tablename.cashnum[i].value;
tablename.tt2.value=tablename.tt2.value-tablename.addcash[i].value;
tablename.cashnum[i].value=0;
tablename.cash[i].value=0;
var ii=i+1;
if(ii<0)
{
alert('没有合适的记录被删除!');
return false;
}
myTable.deleteRow(i);
flag=flag+1;
return;
}

}

}
//在数量文本框失去焦点的时候触发的事件
function cashnumonblur(cashnum)
{
var sm_num1=tablename.cashnum[cashnum].value;
var char1='';
var charValue='';
for(var i=0;i<tablename.CheckName.length;i++)
{
char1=tablename.cashnum[cashnum].value;
for (var j=0;j<char1.length;j++)
{ charValue = char1.charAt(j);
if(charValue<'0'||charValue>'9')
{
flag=false;
}
else
{
flag=true;
}
}
}
if(!flag)
{
tablename.cashnum[cashnum].focus();
tablename.cashnum[cashnum].select();
alert('必须填入数据');
return ;
}
else
{
cashcc11 = cashcc +parseInt(sm_num1); //取得香烟数量总计
tablename.tt1.value=cashcc11;
}
}
function getIndex()
{

intRowIndex=event.srcElement.parentElement.rowIndex;//根据鼠标来单击行并取得行号
pos.innerText=intRowIndex; //插入行号

}
//金额文本框失去焦点的时候触发的事件,让总金额自动更新
function textonblur(tbIndex)
{
var sm_num=tablename.cashnum[tbIndex].value;
var sm_cash=tablename.cash[tbIndex].value;
var addcn=sm_num*sm_cash;
var char1='';
var charValue='';


for(var i=0;i<tablename.CheckName.length;i++)
{
char1=tablename.cash[tbIndex].value;
for (var j=0;j<char1.length;j++)
{ charValue = char1.charAt(j);
if(charValue<'0'||charValue>'9')
{
flag=false;
}
else
{
flag=true;
}
}
}
if(!flag)
{
tablename.cash[tbIndex].focus();
tablename.cash[tbIndex].select();
alert('必须填入数据');
return ;
}
else
{
tablename.addcash[tbIndex].value=addcn;//将数量和金额的结果相乘后给合计列
cashcc = cashcc +parseInt(sm_num); //取得香烟数量总计
cashccase = cashccase+parseInt(addcn);//取得金额总计
tablename.tt2.value=cashccase;
}
if(flag>=1)
{
alert('flag');
//myForm.button3.disabled=false;//在删除记录后添加记录累加出错,删除的列没有被删除而是被隐藏,故值依然存在,暂时没有解决,故先让按钮失效
}
}
//保存记录
function addRecode()
{
var save_sm_num='';
var save_sm_money='';
var heji='';
var select_value='';
var objselect=tablename.select_smoke;
var add_sm_num=0;
var para='';
//var varTOvar='';
for(var i=1;i<tablename.CheckName.length;i++)
{
//select_value=objselect[i].value;//取得第I个值
for(var j=1;j<=i-1;j++)
{
if(tablename.select_smoke[i].value==tablename.select_smoke[j].value)
{
alert('卷烟的名称不能相同!');
return false;
}
}

}

for(i=0;i<tablename.CheckName.length;i++)
{
if(tablename.cashnum[i].value!='')
{
save_sm_num = tablename.cashnum[i].value;
save_sm_money =tablename.cash[i].value;
select_value=objselect[i].value;
heji=tablename.addcash[i].value;
para=para+select_value+'*'+save_sm_num+'*'+save_sm_money+'*'+heji+'&';
add_sm_num=add_sm_num+parseInt(save_sm_num);
}
}
alert(para+'$'+add_sm_num);
}
function go_back_win()
{

}
</script>
<body onload='pos.innerHTML=intRowIndex;'>
<h2>表列的增加</h2>
<hr>
当前位置:<span id='pos'></span>
<form name='myForm'>
<INPUT type=button value='添加' onclick='insertRow(myTable.rows.length)' id=button3 name=button3>
<INPUT type=button value='删除' onclick='deleteRow()' id=button2 name=button2>
<INPUT type=button value='保存' onclick='addRecode()'>
<INPUT type=button value='取消' onclick='go_back_win()' id=cancelbuttom name=cancelbuttom>
</form>
<form name='tablename' style="WIDTH: 512px; HEIGHT: 48px">
<input type=hidden name='cash'>
<input type=hidden name='cashnum'>
<input type=hidden name='addcash'>
<input type=hidden name='CheckName'>
<input type=hidden name='select_smoke'>
<table id='myTable' border=1 width='554' style="WIDTH: 554px; HEIGHT: 29px">
<tr>
<td width="8%">选择</td>
<td align='middle'>MC</td>
<td align='middle'>数量</td>
<td align='middle'>金额</td>
<td align='middle'>合计</td>
</tr>
</table>
<hr style="WIDTH: 559px; HEIGHT: 3px" SIZE=3>


<table id='CaseTable' border=0 width='514' style="WIDTH: 514px; HEIGHT: 29px">
<tr>
<td align='middle'><font size=2>数量总计:</font></td>
<td align='left'><input name='tt1' tupe="text" disabled></td>
<td align='middle'><font size=2>金额总计</font>:</td>
<td align='left'><input name='tt2' tupe="text" disabled></td>
</tr>
</table>

</form>
</body>
//该功能缺点请高手帮帮改正,小弟我第一次使用JS,有许多不足之处还请指点
//在删除(点击前面的多选按钮才可以删除)后在增加时候会在数量总计和金额总计的数量出现偏差如何解决
//修改的时候数量总计和金额总计没有变化
...全文
163 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
RedSunMan 2003-09-04
  • 打赏
  • 举报
回复
sheisman(香浓):
在功能上有写缺陷啊,比如在删除一条记录的时候在添加则总计的值就不对了,这个是这段代码最大的缺陷了,你能帮我吗?
sheisman 2003-09-01
  • 打赏
  • 举报
回复
也许我能帮你,可是不知道你需要什么
honker110 2003-09-01
  • 打赏
  • 举报
回复
呵呵,不如你重新学习一下吧
RedSunMan 2003-09-01
  • 打赏
  • 举报
回复
没有人说话啊,急啊

87,987

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧