【发布时间】:2012-07-20 13:20:15
【问题描述】:
我有问题,其实至少我不知道怎么解决。我有几个字段显示不同的数量,每个位置都由一个 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>
突然之间,我不知道,因为每次我都没有到达更多的情况下。
提前感谢所有可以帮助我进步的人。
此致。
【问题讨论】:
-
您的问题到底是什么?您是否没有收到正确的值,或者您的逻辑没有将值移动到正确的字段?
-
事实上,正如你在这张图片上看到的,我有很多不同的字段,developpez.net/forums/attachments/p99396d1342770574/… 当有人付款时,我有一个订单输入,例如,如果有人付款 25000 它必须在所有文件之间分配 25000,直到输入中给出的金额等于 0。例如,如果我有 p1=300 和 p2 = 150 和 p3 = 75 并且我有 465 欧元的付款,则重新分配将是 300 p1 150 为 p2 和 15 为 p3 和 p3 上的剩余量将是 60
-
所以你的逻辑没有正确分配这些值。您的变量名称有点难以理解。
honoraires是什么?它是在哪里定义的? -
荣誉实际上是一个错误。它不会在那里使用事实上我有一个输入来写付款,我想在所有这篇文章之间分配付款我会做另一个例子。右侧的表格中写有剩余的原始金额,右侧写有将在那里估算的金额。例如,如果我们一开始有 I= 推算 L = 还剩 I=0 / L 150 I=0 / L 50 I=0 / L 25 并且我有 220 的付款,那将是 I=150 / L= 0 I=50 / L= 0 I=20 / L= 5
-
这里还有一张图解释developpez.net/forums/…
标签: javascript field allocation