Javascript 循环通过具有一个元素的复选框数组
我有一个名为“tags”的动态创建的复选框列表,我使用javascript循环遍历这些复选框,以确保只选中1并获取值。如果出于某种原因,此复选框列表只有一项,我的脚本将不会查看它。当我提醒标签的长度时,我没有定义Javascript 循环通过具有一个元素的复选框数组,javascript,forms,checkbox,Javascript,Forms,Checkbox,我有一个名为“tags”的动态创建的复选框列表,我使用javascript循环遍历这些复选框,以确保只选中1并获取值。如果出于某种原因,此复选框列表只有一项,我的脚本将不会查看它。当我提醒标签的长度时,我没有定义 var total=[]; for (var i=0; i < document.form1.tags.length; i++){ if(document.form1.tags[i].checked==true){ tota
var total=[];
for (var i=0; i < document.form1.tags.length; i++){
if(document.form1.tags[i].checked==true){
total.push(document.form1.tags[i].value);
}
}
if(total.length==0){
alert("Please select a product to edit.");
}else if (total.length>1){
alert("Please select only one product to edit.");
}else{
document.location = "go somewhere";
}
var-total=[];
对于(var i=0;i1){
警告(“请仅选择一个要编辑的产品”);
}否则{
document.location=“去某处”;
}
从我的头顶。。。如果只选择了一个复选框,则可能是document.form1.tags不是数组…两条建议:
getElementsByName
获取所有元素,以便可以迭代它们:var tags=document.getElementsByName('tags');
对于(变量i=0;i
为什么需要复选框?
这不是一个很好的利用机会吗 您需要单选按钮
<input type='radio' name='tags' value='[whatever]' />
您不必“检查并确保只选择了一个”。为了得到
var tags = document.getElementsByName('tags'),
value = '', i = 0;
for( ; i < tags.length; i++ )
{
if( tags[i].checked ) {
value = tags[i].value;
break;
}
}
var tags=document.getElementsByName('tags'),
值='',i=0;
对于(;i
.tags
在只有一个复选框时不是数组,它包含对一个复选框的直接引用。只有当存在多个同名复选框时,它才会成为节点列表。您应该始终查看开发人员控制台,您可能会在那里看到错误。@Esailija使用querySelectorAll
或jQuery的另一个原因。不能使用单选按钮。根据按下的按钮,允许进行多项选择。
var tags = document.getElementsByName('tags'),
value = '', i = 0;
for( ; i < tags.length; i++ )
{
if( tags[i].checked ) {
value = tags[i].value;
break;
}
}