2

私はここで何か馬鹿げたことをしなければならないことを知っています。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」という名前のラジオボタンが1つしかないためです。プロパティ「length」を使用可能にするには、少なくとももう1つ追加します。

于 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 に答える