2

フィールドがラジオボタンであるかどうかを確認するにはどうすればよいですか?

試しif(document.FORMNAME.FIELDNAME.type =='radio')ましたが、document.FORMNAME.FIELDNAME.typeが未定義を返しています。

ページのhtmlは <input name="FIELDNAME" type="radio" value="1" > <input name="FIELDNAME" type="radio" value="0" >

私がアプローチ全体を間違っていない限り。私の目標は入力フィールドの値を取得することですが、そのフィールドがラジオボタンである場合もあれば、非表示またはテキストフィールドである場合もあります。

ありがとう。

4

3 に答える 3

5

document.FORMNAME.FIELDNAME実際には2つの要素を持つ配列であるため、例は機能しません(フォームにその名前の2つの入力があるため)。書くif(document.FORMNAME.FIELDNAME[0].type =='radio')ことはうまくいくでしょう。

編集: document.FORMNAME.FIELDNAME がラジオであるかどうかがわからない場合 (つまり、テキスト/テキストエリア/その他がある場合)、document.FORMNAME.FIELDNAME が最初に配列であるかどうかをテストすることをお勧めします。最初の要素のタイプが「radio」の場合。何かのようなものif((document.FORMNAME.FIELDNAME.length && document.FORMNAME.FIELDNAME[0].type =='radio') || document.FORMNAME.FIELDNAME.type =='radio')

于 2013-01-30T16:24:02.643 に答える
3

フォームを持っていない場合は、おそらく属性で行くことがオプションです。

var elements = document.getElementsByName('nameOfMyRadiobuttons');

elements.forEach(function (item, index) {

  if (item.getAttribute("type") == 'radio') {
      var message = "Found radiobutton with value " + item.value;

      if(item.checked) {
         message += " and it is checked!"
      }

      alert(message);
   }

});
于 2018-01-11T14:51:50.047 に答える
2

コードは機能するはずですが、次のことを試すことができます。

document.getElementById('idofinput').type == 'radio'

編集:上記のmihaimmが言及した理由により、コードは機能しません

于 2013-01-30T16:18:35.027 に答える