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