Javascript getElementById と getElementByName は違います。


スポンサーリンク

JavaScript を使って動的に form 要素を操作しようとしたときに、よく間違えるのが getElementById と getElementByName。 例えば
<input type="text" name="intext" id="intext" OnChange="StringAppend();">
<input type="text" name="ottext" id="ottext">
 :
function StringAppend()
{
  var in=getElementById(intext);
  var ot=getElementById(ottext);
  ot.value = in.value + '_append String';
}
これは動く。 けど、getElementById をまちがって getElementByName とやっちゃうと
<input type="text" name="intext" id="intext" OnChange="StringAppend();">
<input type="text" name="ottext" id="ottext">
 :
function StringAppend()
{
  var in=getElementByName(intext);
  var ot=getElementByName(ottext);
  ot.value = in.value + '_append String';
}
undefinedになります。 getElementById は、単数要素を取り出す場合で、 getElementByNameは、複数要素を取り出すために使います。 input タグは複数要素だけど、select などは複数要素だよね?ってこと。 ちなみにラジオボタンの場合
  document.getElementsByName("rdo")[no].checked = true;
と使います。

スポンサーリンク