订单的初步静态模型

1.add.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>
<BODY>
<TABLE border="1" width="100%">
<TR>
	<TD>编号:<input type="text" /></TD>
	<TD>名称:<input type="text" /></TD>
</TR>
<TR>
	<TD>价格:<input type="text" /></TD>
	<TD>操作员:<input type="text" /><a href="#" onclick="f();return false;">添加产品</a></TD>
</TR>
</TABLE>
<table id="tb">

</table>
总价:<label id="total"> </label>
</BODY>
</HTML>
<SCRIPT LANGUAGE="JavaScript">
	function f(){
		window.showModalDialog("pro.html",window,"dialogWidth=200px;dialogHeight=200px");
	}
	function sum(){
		var tb=document.getElementById("tb");
		var sum=0;
		for(var i=0;i<tb.rows.length;i++){
			sum=sum+parseFloat(tb.rows(i).cells[4].firstChild.nodeValue);
		}
		document.getElementById("total").firstChild.nodeValue=sum;
	}
	function remove_(v){
		var rowIndex=v.parentNode.rowIndex;
		var tb=document.getElementById("tb");
		tb.deleteRow(rowIndex);
		sum();
	}
	function compu(v){
		var op=v.innerHTML;
		var num=parseInt(v.parentNode.childNodes[1].value);
		if(op=="+"){
			num=num+1;
		}else if(op=="-"){
			if(num<=1){
			num=1;
			return;
			}
			num=num-1;
		}
		v.parentNode.childNodes[1].value=num;

		var price=parseFloat(v.parentNode.parentNode.cells[2].firstChild.nodeValue);
		v.parentNode.parentNode.cells[4].firstChild.nodeValue=price*num;
		sum();

	}
	//去重,如果重复的话就直接加一
	function re(v){
		var flag=true;
		var tb=document.getElementById("tb");
		for (var i=0;i<tb.rows.length ;i++ )
		{
			if(v==tb.rows(i).cells[0].firstChild.nodeValue){
				compu(tb.rows(i).cells[3].childNodes[2]);
				flag=false;
			break;
			}
		}
		return flag;
	}
	//改变文本框中的数字,也能够改变总额以及小计
	function price(){
		var tb=document.getElementById("tb");
		for (var i=0;i<tb.rows.length ;i++ )
		{
			var num=parseInt(tb.rows(i).cells[3].childNodes[1].value);
			var price=parseFloat(tb.rows(i).cells[2].firstChild.nodeValue);
			tb.rows(i).cells[4].firstChild.nodeValue=price*num;
		}
		sum();
	}
	//每隔5秒重复调用一次price函数
	setInterval('price()',5000);
</SCRIPT>

2.pro.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<SCRIPT LANGUAGE="JavaScript">
	function f(v){
		var parWin=window.dialogArguments;
		var tb=parWin.document.getElementById("tb");
		tb.width=600;
		tb.border=1;
				if(parWin.re(v.getAttribute("pno"))){
				var new_row=tb.insertRow();
					new_row.align="center";

					var cel_1=new_row.insertCell(0);
					cel_1.innerHTML=v.getAttribute("pno");

					var cel_2=new_row.insertCell(1);
					cel_2.innerHTML=v.getAttribute("pname");

					var cel_3=new_row.insertCell(2);
					cel_3.innerHTML=v.getAttribute("price");

					var cel_4=new_row.insertCell(3);
					cel_4.innerHTML='<a href="#" onclick="compu(this);return false;">-</a><input type="text" name="num" id="num" value="1" size="3" /><a href="#" onclick="compu(this);return false;">+</a>';

					var cel_5=new_row.insertCell(4);
					cel_5.innerHTML=v.getAttribute("price");

					var cel_6=new_row.insertCell(5);
					cel_6.innerHTML='<a href="#" onclick="remove_(this);return false;">移除</a>';

					parWin.sum();
			}
	}
</SCRIPT>
</HEAD>
<BODY>
<TABLE border="1" width="300" align="center">
<TR>
	<TD>编号</TD>
	<TD>名称</TD>
	<TD>价格</TD>
</TR>
<TR>
	<TD>001</TD>
	<TD><a href="#" pno="001" pname="苹果" price="15" onclick="f(this);return false;" >苹果</a></TD>
	<TD>15</TD>
</TR>
<TR>
	<TD>002</TD>
	<TD><a href="#" pno="002" pname="香蕉" price="5" onclick="f(this);return false;" >香蕉</a></TD>
	<TD>5</TD>
</TR>
<TR>
	<TD>003</TD>
	<TD><a href="#" pno="003" pname="西瓜" price="1" onclick="f(this);return false;" >西瓜</a></TD>
	<TD>1</TD>
</TR>
</TABLE>
</BODY>
</HTML>

再次改进过得静态模型,就是丑了点。进行文本框的数据改动时,我写的是每隔一段时间就调用一次那个函数,但是我希望的是我进行改动之后调用一次,不改动不调用不刷新,目前没想出来怎么写,等之后进行优化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值