FORM SNAPSHOT 用于动态创建文本框的2 PHP代码
for($i=0;$i<count($chkSelec);$i++)
{
echo "<td align='center'><input type='text' id='".$columnValue[$i]."' name='".$columnValue[$i]."[]' size='5' onchange=AddToAggr('".$columnValue[$i]."',".$count_var.") required /></td>";
}
echo "<td align='center'><input type='text' id='Aggr' name='Aggr[]' size='7' value='".$rowText['TotalGrade']."' readonly='readonly' disabled/></td>";
这是我的javascript函数
var i=0;
var TotalGrade=0;
function AddToAggr(val,countvar) {
var group6 = document.PIScoreForm.Aggr;
for(var i=0;i<2;i++)
{
for(var j=i;j<countvar;j++)
{
if(val=='Comm')
{
var group1 = document.PIScoreForm.Comm;
TotalGrade += parseFloat(group1[i].value);
}
else if(val=='PresSkil')
{
var group2 = document.PIScoreForm.PresSkil;
TotalGrade += parseFloat(group2[i].value);
alert('2 :'+TotalGrade);
}
else
{
TotalGrade += 0;
}
}
document.getElementsByName("Aggr")[i].value = TotalGrade;
alert("Total " + i+" "+TotalGrade);
}
}
我想找到每列的平均值并将其显示在Aggr文本框中。在第一个for循环中,条件i&lt; 2是Panalist的数量。我对时间的价值进行了硬编码。
答案 0 :(得分:0)
对于初学者来说, document.getElementsByName 调用应该接受' Aggr [] '而不是'Aggr'将删除“非对象”错误控制台。
如果没有其他上下文,可能需要进行其他更改,此处的修复程序适用于您提供的内容。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>PHP code for creating textboxes dynamically</title>
</head>
<body>
<?php
// Mock Data
$rowText = array (
'TotalGrade' => 0
);
$columnValue = array();
for($i=0;$i<5;$i++)
{
$columnValue[$i] = "testValue";
echo "<td align='center'><input type='text' id='".$columnValue[$i]."' name='".$columnValue[$i]."[]' size='5' onchange=AddToAggr('".$columnValue[$i]."',".$i.") required /></td>";
}
echo "<td align='center'><input type='text' id='Aggr' name='Aggr[]' size='7' value='".$rowText['TotalGrade']."' readonly='readonly' disabled/></td>";
?>
<script>
var i=0;
var TotalGrade=0;
function AddToAggr(val,countvar) {
//var group6 = document.PIScoreForm.Aggr;
for(var i=0;i<2;i++)
{
for(var j=i;j<countvar;j++)
{
if(val=='Comm')
{
var group1 = document.PIScoreForm.Comm;
TotalGrade += parseFloat(group1[i].value);
}
else if(val=='PresSkil')
{
var group2 = document.PIScoreForm.PresSkil;
TotalGrade += parseFloat(group2[i].value);
alert('2 :'+TotalGrade);
}
else
{
TotalGrade += 0;
}
}
document.getElementsByName("Aggr[]")[i].value = TotalGrade;
alert("Total " + i+" "+TotalGrade);
}
}
</script>
</body>
</html>