2

我有一个名为“标签”的动态创建的复选框列表,我使用 javascript 循环以确保仅选中 1 并获取值。如果由于某种原因此复选框列表只有一项,我的脚本将不会查看它。当我提醒标签的长度时,我得到了未定义。

    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";
    }
4

4 回答 4

4

为什么需要复选框?这不是使用Radiobuttons的好机会吗?

于 2012-11-08T22:19:11.300 回答
2

两个建议:

  1. 而是使用getElementsByName来获取所有元素,以便您可以迭代它们:

  2. 使用像 jquery 这样的框架。有什么理由不能使用 jquery 或其他框架?你的生活会轻松很多。

var tags = document.getElementsByName('tags');
for(var i = 0; i < tags.length; ++i)
{
    if(tags[i].checked) .....
}
于 2012-11-08T22:18:42.800 回答
2

你想要单选按钮。

<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;
    }
}
于 2012-11-08T22:36:29.330 回答
-1

从我的头顶......如果只有一个复选框被选中,它可能是 document.form1.tags 不是一个数组......

于 2012-11-08T22:16:25.487 回答