程序是一个装修预算的程序,要求是输入数量后,每个后面就自动将单价与数量相乘.自动就显示每个单项的总价,同时也自动生成总的价格
现在的问题就是:输入数量触发了单项总价,但是单项类型选择时.,希望能直接显示对应的单价.这个总是出错,请哪位老大帮我将这个码写下,谢谢,回帖立刻结贴 部分代码如下:
function Number_Change(obj,cid,id)
{
var number = !isNaN(obj.value) ? parseFloat(obj.value) : 0;
document.getElementById('sum_'+cid+'_'+id).innerHTML = number > 0 ? accMul(number,parseFloat(document.getElementById('price_'+cid+'_'+id).innerHTML)) : '0.0';
var sum = 0;
for(var i = 1;i <= categorys[cid - 1];i++)
{
sum = accAdd(sum,parseFloat(document.getElementById('sum_'+cid+'_'+i).innerHTML));
}
document.getElementById('sum_'+cid).innerHTML = sum > 0 ? sum : '0.0'; var sum_proj = 0;
for(var i = 1;i <= 11;i++)
{
sum_proj = accAdd(sum_proj,parseFloat(document.getElementById('sum_'+i).innerHTML));
}
document.getElementById('sum_proj').innerHTML = sum_proj > 0 ? sum_proj : '0.0';
document.getElementById('price_12_1').innerHTML = accMul(sum_proj,0.015); document.getElementById('price_12_2').innerHTML = accMul(sum_proj,0.015); document.getElementById('price_12_3').innerHTML = '0.0';
document.getElementById('price_12_4').innerHTML = accMul(sum_proj,0.05);
document.getElementById('price_12_5').innerHTML = '0.0'; for(var i = 1;i <= categorys[11];i++)
{
document.getElementById('sum_12_'+i).innerHTML = accMul(parseFloat(document.getElementById('unit_12_'+i).innerHTML),parseFloat(document.getElementById('price_12_'+i).innerHTML));
} var sum_other = 0;
for(var i = 1;i <= categorys[11];i++)
{
sum_other = accAdd(sum_other,parseFloat(document.getElementById('sum_12_'+i).innerHTML));
}
document.getElementById('sum_12').innerHTML = sum_other > 0 ? sum_other : '0.0';
var sum_all = 0;
for(var i = 1;i <= 12;i++)
{
sum_all = accAdd(sum_all,parseFloat(document.getElementById('sum_'+i).innerHTML));
}
document.getElementById('sum_all').innerHTML = sum_all > 0 ? sum_all : '0.0';
} 以上是单项相加的函数,下面就是一个单项里要自动根据选择对象显示不同价格(price_1_1),同时根据输入数量显示单项的总价格(sum_1_1).
<tr>
<td class="center">
1 </td>
<td class="center" > <div align="left"> 地面工程 <br>
<select id="dimian" onchange="setVal(this)">
<option value="1" price_1_1=28 selected="selected"> 瓷砖(800*800) </option>
<option value="2" price_1_1=30 > 瓷砖(600*600) </option>
<option value="3" price_1_1=16 > 找平 </option>
</select>
</div> </td>
<td class="center">
平米 </td>
<td class="center">
<input type="text" onchange="javascript:Number_Change(this,1,1);" onkeyup="javascript:this.onchange();" size="4" /> </td>
<td class="center" id="price_1_1">
0 </td>
<td class="center" id="sum_1_1">
0.0 </td>
<td class="center" >
1、人工、辅料、1:3水泥砂浆(地砖客户提供)。2、强度32.5普通水泥,中沙水泥沙浆铺设。3、报价水泥厚度为40mm,超过此厚度,每增1cm,增加5元/㎡。 </td>
<td class="center" > </td>
</tr>
请问price_1_1的触发该如何写???
现在的问题就是:输入数量触发了单项总价,但是单项类型选择时.,希望能直接显示对应的单价.这个总是出错,请哪位老大帮我将这个码写下,谢谢,回帖立刻结贴 部分代码如下:
function Number_Change(obj,cid,id)
{
var number = !isNaN(obj.value) ? parseFloat(obj.value) : 0;
document.getElementById('sum_'+cid+'_'+id).innerHTML = number > 0 ? accMul(number,parseFloat(document.getElementById('price_'+cid+'_'+id).innerHTML)) : '0.0';
var sum = 0;
for(var i = 1;i <= categorys[cid - 1];i++)
{
sum = accAdd(sum,parseFloat(document.getElementById('sum_'+cid+'_'+i).innerHTML));
}
document.getElementById('sum_'+cid).innerHTML = sum > 0 ? sum : '0.0'; var sum_proj = 0;
for(var i = 1;i <= 11;i++)
{
sum_proj = accAdd(sum_proj,parseFloat(document.getElementById('sum_'+i).innerHTML));
}
document.getElementById('sum_proj').innerHTML = sum_proj > 0 ? sum_proj : '0.0';
document.getElementById('price_12_1').innerHTML = accMul(sum_proj,0.015); document.getElementById('price_12_2').innerHTML = accMul(sum_proj,0.015); document.getElementById('price_12_3').innerHTML = '0.0';
document.getElementById('price_12_4').innerHTML = accMul(sum_proj,0.05);
document.getElementById('price_12_5').innerHTML = '0.0'; for(var i = 1;i <= categorys[11];i++)
{
document.getElementById('sum_12_'+i).innerHTML = accMul(parseFloat(document.getElementById('unit_12_'+i).innerHTML),parseFloat(document.getElementById('price_12_'+i).innerHTML));
} var sum_other = 0;
for(var i = 1;i <= categorys[11];i++)
{
sum_other = accAdd(sum_other,parseFloat(document.getElementById('sum_12_'+i).innerHTML));
}
document.getElementById('sum_12').innerHTML = sum_other > 0 ? sum_other : '0.0';
var sum_all = 0;
for(var i = 1;i <= 12;i++)
{
sum_all = accAdd(sum_all,parseFloat(document.getElementById('sum_'+i).innerHTML));
}
document.getElementById('sum_all').innerHTML = sum_all > 0 ? sum_all : '0.0';
} 以上是单项相加的函数,下面就是一个单项里要自动根据选择对象显示不同价格(price_1_1),同时根据输入数量显示单项的总价格(sum_1_1).
<tr>
<td class="center">
1 </td>
<td class="center" > <div align="left"> 地面工程 <br>
<select id="dimian" onchange="setVal(this)">
<option value="1" price_1_1=28 selected="selected"> 瓷砖(800*800) </option>
<option value="2" price_1_1=30 > 瓷砖(600*600) </option>
<option value="3" price_1_1=16 > 找平 </option>
</select>
</div> </td>
<td class="center">
平米 </td>
<td class="center">
<input type="text" onchange="javascript:Number_Change(this,1,1);" onkeyup="javascript:this.onchange();" size="4" /> </td>
<td class="center" id="price_1_1">
0 </td>
<td class="center" id="sum_1_1">
0.0 </td>
<td class="center" >
1、人工、辅料、1:3水泥砂浆(地砖客户提供)。2、强度32.5普通水泥,中沙水泥沙浆铺设。3、报价水泥厚度为40mm,超过此厚度,每增1cm,增加5元/㎡。 </td>
<td class="center" > </td>
</tr>
请问price_1_1的触发该如何写???
<head>
<title></title>
<meta http-equiv="http-content" content="text/html;charset=gb2312"/>
<script>
function Number_Change(obj,cid,id)
{
var s=document.getElementById("dimian");
if(s.value=="0")
{
alert('请先选择价格价格!');
obj.value="";
s.focus();
return;
}
var c=isNaN(obj.value)?0:parseInt(obj.value);
if(c==0)
{
alert('数量不能为0或者非正数!');
obj.select();
return;
}
var p=parseFloat(document.getElementById('price_'+cid+'_'+id).innerHTML);
document.getElementById('sum_'+cid+'_'+id).innerHTML=c*p;
}
function setVal(s)
{
document.getElementById("price_1_1").innerHTML=s.options[s.selectedIndex].getAttribute("price_1_1");
}
</script>
</head>
<body>
<table border='1' cellpadding='0' cellspacing='2' id="Tb">
<tr>
<td class="center">
1 </td>
<td class="center" > <div align="left"> 地面工程 <br>
<select id="dimian" onchange="setVal(this)">
<option value="0" price_1_1=0 selected="selected">请选择</option>
<option value="1" price_1_1=28 > 瓷砖(800*800) </option>
<option value="2" price_1_1=30 > 瓷砖(600*600) </option>
<option value="3" price_1_1=16 > 找平 </option>
</select>
</div> </td>
<td class="center">
平米 </td>
<td class="center">
<input type="text" onchange="javascript:Number_Change(this,1,1);" size="4" /> </td>
<td class="center" id="price_1_1">
0 </td>
<td class="center" id="sum_1_1">
0.0 </td>
<td class="center" >
1、人工、辅料、1:3水泥砂浆(地砖客户提供)。2、强度32.5普通水泥,中沙水泥沙浆铺设。3、报价水泥厚度为40mm,超过此厚度,每增1cm,增加5元/㎡。 </td>
<td class="center" > </td>
</tr>
</table>
</body>
</html>
</div> </td>
<td class="center">
平米 </td>
<td class="center">
<input type="text" onchange="javascript:Number_Change(this,1,1);" size="4" /> </td>
<td class="center" id="price_1_1">
0 </td>
<td class="center" id="sum_1_1">
0.0 </td>
<td class="center" >
1、人工、辅料、1:3水
我怎么结贴不了, ???给不了分???