将金额分配到不同的字段javascript

时间:2012-07-20 13:20:16

标签: javascript field allocation

我有一个问题,事实上至少我不知道怎么回事。我有几个字段显示不同的数量每个位置由id示例标识:p1,p2,p3等......

因此,这些字段包含金额,以十进制形式显示。

我想做什么。因为实际上我会被引导分配在存款的字段中输入的金额。

也就是说,只要存款金额> 0然后我分散了各个帖子

例如,假设我有

 300 = p1, p2 and p3 = 120 = 50
and I have a deposit for an amount of 450 Euros, so I would
p1 = 0 and o1 fields (fields that is revealing what has been imputed) 300
p2 = 0 and the fields 120 o2
p3 = 20 fields and o3 = 30

我实际上尝试了很多条件,但我纠结了笔刷。

这就是它给出的:

<script type="text/javascript">
  function ventilation()
 {
 var montantacompte = document.getElementById("montantacompte").value;
 var p1             = document.getElementById("p1").value;
 var p2             = document.getElementById("p2").value;  
 var p3             = document.getElementById("p3").value;  
 var p4             = document.getElementById("p4").value;   
 var p5             = document.getElementById("p5").value;      
 var p7             = document.getElementById("p7").value;                  
 var p8             = document.getElementById("p8").value;   
 var p9             = document.getElementById("p9").value;   
 var p10            = document.getElementById("p10").value; 
 var p11            = document.getElementById("p11").value;   
 var p12            = document.getElementById("p12").value;  
 var p13            = document.getElementById("p13").value;


    if(p1>0 &&p1-montantacompte>=0)
     {

         f1=p1-montantacompte;
         document.getElementById('p1').value=f1;
         document.getElementById('o1').value=Math.round(montantacompte*100)/100;
     }
        if(p1>0 &&p1-montantacompte<=(p1+p2))
     {
         reste1=montantacompte-p1;
         impute=p1;
         impute2=reste1;
         f1=m1-impute;
         document.getElementById('p1').value=f1;
         document.getElementById('o1').value=Math.round(impute*100)/100;
         document.getElementById('o2').value=Math.round(impute2*100)/100;

     }

 }
</script>

我也试过一个循环但是我也纠结了刷子,我对javascript的小知识没有帮助。

<script type="text/javascript">
  function ventilation()
 {
 var reste          = document.getElementById("montantacompte").value;
 var ac             = document.getElementById("montantacompte").value;
 var p1             = document.getElementById("p1").value;
 var p2             = document.getElementById("p2").value;  
 var p3             = document.getElementById("p3").value;  
 var p4             = document.getElementById("p4").value;   
 var p5             = document.getElementById("p5").value;      
 var p7             = document.getElementById("p7").value;                  
 var p8             = document.getElementById("p8").value;   
 var p9             = document.getElementById("p9").value;   
 var p10            = document.getElementById("p10").value; 
 var p11            = document.getElementById("p11").value;   
 var p12            = document.getElementById("p12").value;  
 var p13            = document.getElementById("p13").value;
 var c              = 1;
 while(reste>0 && c<13)
 {
     if(reste> 'p'+c)
     {
         reste = 'p'+c -  ac;
         document.getElementById('p'+c).value=Math.round(honoraires*100)/100;
         print reste;
     }
 }

</script>
突然间,我不知道,因为每次我都没有在两种情况下都进一步前进。

提前感谢所有能帮助我进步的人。

真诚的。

1 个答案:

答案 0 :(得分:1)

据我了解此问题,用户输入付款金额,然后此金额将应用于订单上的订单项。

输入:17100

第1项:<input id="p1" class="items" value="16000.00 €"/>

第2项:<input id="p1" class="items" value="535.00 €"/>

第3项:<input id="p1" class="items" value="955.00 €"/>

 function getItems()
 {
 var items = new Array();
 var itemCount = document.getElementsByClassName("items");

 for(var i = 0; i < itemCount.length; i++)
 {
     items[i] = document.getElementById("p" + (i+1)).value;
 }

 return items;
 }

 function setItems(items,payAmt)
 {
   document.getElementById("inputField").value = payAmt;
   for(var i = 0; i < items.length; i++)
   {
      document.getElementById("p" + (i+1)).value = items[i];
   }
 }

 function itemSum(items)
 {
var sum = 0;

for(var i=0; i < items.length; i++)
{
    sum = items[i] + sum;
}

return sum;
 }

 function payment(inputElm)
 {
 var items = getItems();
 var payAmt = document.getElementById("inputField").value;
 var i = 0;
 var sum = itemSum(items);

 while(payAmt != 0 && sum != 0)
 {
     var temp = items[i] - payAmt;
     if(temp > 0)
     {
         items[i] = temp;
         break;
     }
     else if(temp < 0)
     {
         items[i] = 0;
         payAmt = temp*-1;
      }
     i++;
     sum = itemSum(items);
 }

  setItems(items, payAmt);
 }

如果我理解你的问题,我认为应该这样做。你需要确保ID匹配并且这是未经测试的,因此在那里会有一两个错误。

相关问题