Perl CGI中单个复选框的javascript验证失败
我有一个小javascript函数,用于检查复选框的验证:Perl CGI中单个复选框的javascript验证失败,javascript,perl,checkbox,cgi,Javascript,Perl,Checkbox,Cgi,我有一个小javascript函数,用于检查复选框的验证: function check_this() { var arrCheckboxes = document.create_schedule.elements["username"]; var checkCount = 0; for (var i = 0; i < arrCheckboxes.length; i++) { if(arrCheckboxes[i].checked)
function check_this() {
var arrCheckboxes = document.create_schedule.elements["username"];
var checkCount = 0;
for (var i = 0; i < arrCheckboxes.length; i++) {
if(arrCheckboxes[i].checked)
{ checkCount += 1;
}
}
if (checkCount > 0){
return true;
} else {
alert("You do not have any users.");
return false;
}
}
函数检查\u this(){
var arrcheckbox=document.create_schedule.elements[“username”];
var检查计数=0;
对于(变量i=0;i0){
返回true;
}否则{
警报(“您没有任何用户。”);
返回false;
}
}
下面是相关的Perl代码
print "<form action=\"create-plan.cgi\" method=\"GET\" name=\"create_schedule\" onsubmit=\"return check_this()\">";
foreach(@these_account_users)
{ my $test = $_;
my $choice =1;
foreach(@all_conf_users)
{ if ($test =~ $_)
{ #print "Duplicate";
$choice = 0;
last;
}
}
if ($choice == 1)
{ print "<input name=\"username\" value=\"$_\" type=\"checkbox\"><b>$_</b><br />";
}
else
{ print "<input name=\"username\" value=\"$_\" type=\"checkbox\" disabled=\"disabled\">$_<br />";
}
}
print '<br /><input name="backup_type" type="submit" value="Select Type">';
print "</form><br /><br />";
print”“;
foreach(@这些用户)
{my$test=$\;
我的$choice=1;
foreach(@all_conf_用户)
{如果($test=~$)
{#打印“副本”;
$choice=0;
最后;
}
}
如果($choice==1)
{打印“$\
”;
}
其他的
{打印“$\
”;
}
}
打印“
”;
打印“
”;
运行此选项时,如果未选中任何复选框(即显示警报),则此选项有效。如果存在两个或多个复选框,并且至少选择了一个复选框,则它将接受该复选框并移动到下一屏幕。但是,如果只有一个复选框,并且选中了该复选框,则会抛出警报并拒绝前进
我做错了什么
编辑:
在进一步的测试中,我发现如果只有一个复选框,
arrCheckboxes.length
的值是undefined
,但是如果有两个或更多帐户,arrCheckboxes.length
的值等于复选框的确切数目。现在我真的被难住了……从您的例子来看,似乎当没有选择任何内容并且只有一个复选框时,它不会返回数组实例。更改javascript函数的第一部分,如下所示:
var arrCheckboxes;
if(!document.create_schedule.username.length) {
arrCheckboxes = [document.create_schedule.username];
}
else {
arrCheckboxes = document.create_schedule.elements["username"];
}
这将修复您的错误