单个复选框的 JavaScript 验证在 Perl CGI 中失败
javascript validation for single checkbox fails in Perl 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)
{ checkCount += 1;
}
}
if (checkCount > 0){
return true;
} else {
alert("You do not have any users.");
return 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 />";
运行此命令时,如果未选中复选框(即显示警报),它将起作用。如果存在 2 个或更多复选框,并且至少选中了一个复选框,它将接受该复选框并移动到下一个屏幕。但是,如果只有一个复选框并且选中了该复选框,则会引发警报并拒绝继续前进。
我做错了什么?
编辑:
在进一步的测试中,我发现如果只有一个复选框,arrCheckboxes.length
的值为 undefined
,但是如果有 2 个或更多帐户,arrCheckboxes.length
的值等于复选框的确切数量。现在我真的被难住了。
从您的示例中,似乎当未选择任何内容并且只有一个复选框时,它不会返回数组实例。更改 javascript 函数的第一部分,如下所示:
var arrCheckboxes;
if(!document.create_schedule.username.length) {
arrCheckboxes = [document.create_schedule.username];
}
else {
arrCheckboxes = document.create_schedule.elements["username"];
}
这应该可以修复您的错误。
相关文章:
- PERL-下载CSV文件不完整
- Javascript未在开发服务器上填充Perl表单
- PERL and HTML Forms
- 无法使用ajax/javascript将文件上传到perl脚本
- 在Perl CGI脚本中捕获iframe返回值
- 如何上传一个XML对象并用Perl将其保存在服务器上
- 使用perl在js中隐藏模型
- 如何使用Perl访问JavaScript驱动的网页内容
- 单个复选框的 JavaScript 验证在 Perl CGI 中失败
- 包括Perl CGI Javascript,但警报没有发生
- 如何在Perl CGI中获取访问者浏览器窗口大小
- Perl CGI 在身份验证后重定向
- Perl CGI代码错误
- 将 HTML 页面中的 JavaScript 变量传递到 HTML 表单(在同一页面上)以提交给 Perl CGI
- 当使用json从perl/cgi向客户端发送包括换行符在内的字符串时,脚本将停止
- 使用CGI方法通过web服务器将参数从JavaScript传递到Perl脚本
- perl cgi jquery not working
- 我需要进行Ajax调用并显示我的DB表的内容,我使用Perl CGI并试图通过javaScript调用Perl脚本
- perl-cgi脚本可以't发布到站点-独立工作,但在apache下运行时失败
- Perl CGI,多个表单和多个提交按钮,在同一页面上执行操作