简单Javascript表单验证的问题

简单Javascript表单验证的问题,javascript,forms,validation,Javascript,Forms,Validation,我正在整理一组多页的表单,这些表单通过会话进行链接,并在提交每个部分时使用Javascript进行表单验证。我的第一张表格工作得非常好。我的第二个,不多。它是一个动态创建的表单,依赖于上一个表单从数据库填充的下拉框数量(介于1和20之间)。我将为您提供所有查询代码,以创建填充下拉列表的数组,直接进入表单验证脚本,然后进入表单本身 不带标记的头部验证脚本: function validateForm() { var count = <?php echo $_SESSION['cred

我正在整理一组多页的表单,这些表单通过会话进行链接,并在提交每个部分时使用Javascript进行表单验证。我的第一张表格工作得非常好。我的第二个,不多。它是一个动态创建的表单,依赖于上一个表单从数据库填充的下拉框数量(介于1和20之间)。我将为您提供所有查询代码,以创建填充下拉列表的数组,直接进入表单验证脚本,然后进入表单本身

不带
标记的头部验证脚本:

function validateForm()
{
    var count = <?php echo $_SESSION['credits']; ?>;
    var i = 1;

    for (i = 1; i <= count; i++)
    {
        var j = i;
        for (j++; j <= count; j++)
        {
            var a = document.forms["addcredits"]["creditdropdown_"+i].value;
            var b = document.forms["addcredits"]["creditdropdown_"+j].value;
            if ((a == b) && (a != 0))
            {
                alert('Cannot select the same writer more than once.');
                return false;
            }           
        }
    } 

    var foundOne = false;
    var h = 1;

    while (h <= count && !foundOne)
    {
        if (document.forms["addcredits"]["creditdropdown_"+h].value != 0)
        {
            foundOne = true;
        }
        h++;
    }
    if (!foundOne)
    {
        alert('You must select at least one writer to credit.');
        return false;
    }
}
函数validateForm()
{
var计数=;
var i=1;
对于(i=1;i:

我想说问题出在你的HTML中:

<select "creditdropdown_<?php echo $i; ?>"> 
当您到达此行时,在验证函数中:

var a = document.forms["addcredits"]["creditdropdown_"+i].value;
您会发现您有一个错误,因为
文档。表单[“addcredits”][“creditdropdown”+i]
未定义的
,因为html中缺少
名称=
,并且
未定义的
不能有
属性

(顺便说一句,使用
alert()
进行调试有时非常有用,但最好使用Chrome中的内置开发工具-只需点击(我认为)ctrl-shift-J即可获得JS控制台-或下载Firefox的FireBug。或使用IE的开发工具条。使用
console.log()
而不是
alert()
,和/或单步执行代码,直到找到问题。)

<select name="creditdropdown_<?php echo $i; ?>">
var a = document.forms["addcredits"]["creditdropdown_"+i].value;