无法从javascript中的动态创建的文本框中获取值

时间:2016-01-28 13:16:24

标签: javascript

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的数量。我对时间的价值进行了硬编码。

1 个答案:

答案 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>
相关问题