如何检查是否存在多个同名复选框或仅存在一个此类复选框
How to check if multiple checkboxes with same name present or only one such checkbox present?
您如何确切地检查您获得的复选框值是变量还是数组。我有一个PHP脚本,它根据文件夹中存在的目录数量使用复选框动态填充表单。现在只要有多个目录我可以使用以下代码
for (i=0;i<document.getElementById('editarticle').currentcategories.length;i++)
{
if
(document.getElementById('editarticle').currentcategories[i].checked==true)
{
currentcheckedcategories[currentcheckedcategoriescounter] =
document.getElementById('editarticle').currentcategories[i].value;
currentcheckedcategoriescounter++
}
else
{
currentnotcheckedcategories[currentnotcheckedcategoriescounter] =
document.getElementById('editarticle').currentcategories[i].value;
currentnotcheckedcategoriescounter++
}
}
但是,如果当前类别不是一个数组,即只有一个类别,那么我得到一个未定义并且不收集类别值。在运行 for 循环之前,通过检查当前类别是否是数组来绕过此问题的唯一方法是什么?如果是这样,我将如何检查当前类别是否是一个数组。我在另一个论坛上读到您可以使用 Array 的实例,但这似乎不起作用,另一个网站说这样做不会是故障安全的,因为它会失败一个使用 iFrames。希望有人可以阐明如何检查当前类别是否是一个数组或为我的问题提供替代代码。提前谢谢。
附言。我需要代码是JavaScript,而不是JQuery或任何其他框架。
部分解决
好吧,到目前为止,我已经使用以下if语句来检查是否存在具有相同名称的多个复选框。
if(document.getElementById('editarticle').currentcategories.length == undefined)
未定义表示只有一个具有该名称的复选框可用。否则,可以选择多个当前类别复选框。似乎适用于IE 8 Firefox和Chrome。不相信这是最好的方法。也许如果有人看到此实现中的缺陷或更好的解决方案,请告诉我。
我尝试了 Edorkas 代码,但该代码基于当前类别值的数组返回 true。因此,如果我有三个名为当前类别的复选框,并且只选中了一个,那么代码将为数组返回 false。当然,这可能是我的错,因为我将这个问题的标题措辞为"如何检查复选框值是否为数组",也许更好的标题是"如何检查是否存在多个同名复选框"。我对此进行了更改,以更好地反映我的问题。
如果对象定义了属性长度,则它应该是一个数组。要小心比较,因为当数组为空时,if (result.length( 将为 false。但是,此函数将更有用,在此答案中找到 检查对象是否为数组?
window.isArray = function(candidate){
if (candidate == null)
return false;
return ( Object.prototype.toString.call(candidate) === '[object Array]' )
}
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 正在验证8个真/假复选框或复选框中的2个
- 为复选框javascript指定两个值
- 如何在单击复选框后调用控制器方法
- 从复选框和Selects-KnockoutJS中获取值的总和
- 选中多个具有相同名称的复选框
- 使用Jquery选择或取消选择ListView中的所有复选框
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 在运行时添加复选框并将其保存在 HTML 文件代码中
- 选中复选框(如果 json 对象中存在)
- 如何检查是否存在多个同名复选框或仅存在一个此类复选框
- 比较两个数组,如果 Array2 中存在值,则选中复选框
- Spring复选框选中的属性不存在
- 如果存在img元素,请禁用复选框
- 如何检查复选框是否存在
- Angularjs如何根据另一个列表中是否存在重复元素来有条件地勾选一个复选框
- 隐藏复选框,但保留它的存在
- jQuery选择复选框时,文本存在,隐藏未选中的行从打印
- 复选框和
- 如果不在iMacro中刷新,请选中复选框(如果存在)