长度属性未被捕获

时间:2012-06-12 12:51:04

标签: javascript

我知道我必须在这里做一些蠢事。只需要第二眼。

验证我的收音机盒是否已被检查:

<input type="radio" name="cont_amt" id="cont_amt" value="1000">

  //alert(theForm.cont_amt.value);
  var con_optLength = theForm.cont_amt.length;
  var chkd="";

  for(var i = 0; i < con_optLength; i++) {
        if(theForm.cont_amt[i].checked) {
            chkd=theForm.cont_amt[i].value;
        }
  }


if ( chkd == "" ) {
      reason += "\t" + "Must select a contribution option" + "\n";
  }

我总是打警,因为我的length总是未定义。

3 个答案:

答案 0 :(得分:1)

那是因为你只有一个名为“cont_amt”的单选按钮。为属性“length”添加至少一个以使其可用。

答案 1 :(得分:0)

这是因为theForm.cont_amt是一个对象而不是一个数组。

您可以在行动here中看到它。

答案 2 :(得分:0)

您应该使用document.getElementsByName

  var con = document.getElementsByName('cont_amt');
  var chkd = null;

  for(var i = 0; i < con.length; i++) {
        if(con[i].checked) {
            chkd = con[i].value;
        }
  }

这是一个nice jsFiddle Demo看到我没有说谎。

注意:我怀疑你这样做是因为你有几个像这样的单选按钮。如果是这种情况,则应删除ID属性,因为它在文档中必须是唯一的。