Php 我的javascript冻结了屏幕,没有错误,只是导航器不工作
我在写剧本时遇到了麻烦, 此脚本应将金额分配给不同的字段 事实上,这里是脚本,我将在jsfiddle之后提供给您Php 我的javascript冻结了屏幕,没有错误,只是导航器不工作,php,javascript,field,freeze,allocation,Php,Javascript,Field,Freeze,Allocation,我在写剧本时遇到了麻烦, 此脚本应将金额分配给不同的字段 事实上,这里是脚本,我将在jsfiddle之后提供给您 <script type="text/javascript"> function getItems() { var items = new Array(); var itemCount = document.getElementsByClassName("items"); for(var i = 0; i < itemCount.length; i++)
<script type="text/javascript">
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("troppercu").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("montantacompte").value;
var i = 0;
var sum = itemSum(items);
while(payAmt != 0 && sum != 0)
{
var temp = items[i] - payAmt;
if(temp > 0)
{
items[i] = Math.round((temp)*100)/100;
break;
}
else if(temp < 0)
{
items[i] = 0;
payAmt = temp*-1;
}
i++;
sum = itemSum(items);
}
setItems(items, payAmt);
}
</script>
函数getItems()
{
var items=新数组();
var itemCount=document.getElementsByClassName(“项目”);
对于(var i=0;i0)
{
项目[i]=数学轮((温度)*100)/100;
打破
}
否则如果(温度<0)
{
项目[i]=0;
payAmt=temp*-1;
}
i++;
总和=项目总和(项目);
}
设置项目(项目、付款金额);
}
所以我有一个输入,我可以写一个金额,这个金额将分配到不同的字段
实际上,问题是当我输入与本金相同的金额时,屏幕会冻结。如果我写相同的金额+1美分,它不会冻结
这些字段的所有信息都来自我的数据库。这是用PHP和MySQL编写的
当你写的金额与本金相同时,麻烦就来了。因此,在这种情况下,如果你在黄色框中输入3654.58,屏幕就会冻结。我真的不明白为什么,事实上,它不应该这样做,因为如果我写3654.59,所有的都有效,如果我写得更多,它也有效。问题在于while cycle 你有
if(temp > 0)
及
这会使你的while循环永远工作。。。我包括了temp=0的情况,然后代码运行良好:
问题在while循环中 你有
if(temp > 0)
及
这会使你的while循环永远工作。。。我包括了temp=0的情况,然后代码运行良好:
传递到此函数的值是字符串,而不是数字
function itemSum(items){
var sum = 0;
for(var i=0; i < items.length; i++){
sum = items[i] + sum;
}
return sum;
}
函数项总和(项){
var总和=0;
对于(变量i=0;i
“sum”的值被转换为一组长串接字符串,而不是数字。传递到此函数的值是字符串,而不是数字
function itemSum(items){
var sum = 0;
for(var i=0; i < items.length; i++){
sum = items[i] + sum;
}
return sum;
}
函数项总和(项){
var总和=0;
对于(变量i=0;i
“sum”的值被转换为一组长串接字符串,而不是数字。什么是“xace”?我在你的表格中没有看到。对不起,我写得太快了。我的意思是为了那个“案例”,我会纠正它什么是“xace”?我在你的表格中没有看到。对不起,我写得太快了。我的意思是,对于那个“案例”,我会纠正它,若你们知道的话,我从四天以来一直在寻找什么。非常感谢你的帮助。请接受我最大的尊重。是的,但这不是问题的根源。只是想帮你如果你知道的话,我从4天起就一直在寻找什么。非常感谢你的帮助。请接受我最大的尊重。是的,但这不是问题的根源。只是想帮你亲爱的先生,非常感谢您的提示,事实上,麻烦来自无限的诡计。我也会考虑你的指示,寻求帮助。循环没有结束至少有两个原因,这是因为被比较的两个值是通过串联不断变化的字符串,它们总是!==0另外,使用显式比较,如===和!==而不是==和=我将尽力纠正这一切,敬请尊敬的先生。亲切的问候,斯佩尔先生,非常感谢您的提示,事实上,麻烦来自无限的诡计。我也会考虑你的指示,寻求帮助。循环没有结束至少有两个原因,这是因为被比较的两个值是通过串联不断变化的字符串,它们总是!==0另外,使用显式比较,如===和!==而不是==和=我将尽力纠正这一切,敬请尊敬的先生。你好,SP