2

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

验证我的单选框是否已被选中:

<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的总是不确定的。

4

3 回答 3

1

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

于 2012-06-12T13:02:24.330 回答
0

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

您可以在这里看到它的实际效果。

于 2012-06-12T12:55:41.213 回答
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;
        }
  }

这是一个不错的 jsFiddle 演示,可以看出我没有说谎。

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

于 2012-06-12T12:56:13.023 回答