好的,我已经创建了一张发票,根据发票项目的数量,它将在每个项目旁边生成一个复选框以供批准。每个复选框都有名称invoiceApproval
。
到目前为止,我的脚本将计数以查看有多少输入具有名称invoiceApproval
,然后为每个具有 ID = 的输入分配一个 IDinvoiceApproval[i]
这是完美的工作,但现在当我使用JavaScript 表单验证时:快速简单!在 HTML 表单中为每个 ID 分配一个frmvalidator.addValidation
(每个 ID 的数量等于具有该名称的复选框的数量invoiceApproval
)它仅验证具有 ID 的第一个框invoiceApproval0
。
为什么我的“for each”只适用于第一个实例???我在这里做错了什么:
<script type="text/javascript">
var frmvalidator = new Validator("forminvoice");
var inva = document.getElementsByName("invoiceApproval");
for (var i = 0; i < inva.length;i++) {
var inc = "invoiceApproval"+[i];
inva[i].setAttribute("id",inc);
}
var inva = document.getElementsByName("invoiceApproval");
for (var i = 0; i < inva.length;i++) {
var inc = "invoiceApproval"+[i];
frmvalidator.addValidation(inc,"shouldselchk=x","You must check off each item on the right hand side of the invoice before you can submit approval.");
}
</script>
生成复选框的 PHP 循环是:
while($row = mysql_fetch_array($result))
{
echo "<input type='checkbox' value='x' name ='invoiceApproval' > Approve";
}