程序是一个装修预算的程序,要求是输入数量后,每个后面就自动将单价与数量相乘.自动就显示每个单项的总价,同时也自动生成总的价格 
现在的问题就是:输入数量触发了单项总价,但是单项类型选择时.,希望能直接显示对应的单价.这个总是出错,请哪位老大帮我将这个码写下,谢谢,回帖立刻结贴 部分代码如下: 
  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的触发该如何写???

解决方案 »

  1.   

    <html>
    <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>
      

  2.   

    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水
      

  3.   

    谢谢谢谢showbo,已经解决了,谢谢'
    我怎么结贴不了, ???给不了分???
      

  4.   

    晕,分已经扣了,怎么还是不能结贴??谢谢showbo指点,已经解决