![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
(1)<INPUT NAME="name1" MAXLENGTH="10" VALUE="" id="id1" >
(2)<INPUT NAME="name2" onKeyPress="chk(event);" VALUE="" id="id2">
上記の二つのinputタグのIDからエレメントを取得したいと思っています
知っている限りではgetElementByIdを使おうと思い
例) a = document.getElementById('id1');
b = document.getElementById('id2');
実行してみた所(1)は上手く行きましたが
(2)では上手く行きませんでした。
アラートを表示させ結果を見てみた所
(1)[object]
(2)null
になりました
どうして(2)のほうはエレメントが取れずnullになるのでしょうか?
また(2)のinputタグからエレメントを取る方法はありますでしょうか?
よろしくお願いいたします
No.3ベストアンサー
- 回答日時:
name属性とid属性は 同一箇所にマッピングされます。
(正確に言うとname属性は古くて、id属性を使うことが推奨。XHTML1.1からname属性は廃止)
なので、NAME属性を指定しないほうがよいです。
もしどうしても、両方指定したいのならば、NAME属性とID属性は同じ値を入れないといけません。
http://www.kanzaki.com/docs/html/htminfo12.html
IE7だと、どっちもエレメントが取れる(他の方の回答と同じ)ので、
別の問題だと思います。(大文字小文字の区別だとか)
No.4
- 回答日時:
<input>についてはnameとidが異なっていてもいいです。
でなければ、<label>が使用出来なくなります。
<label for="id1"><input type="checkbox" name="chk" id="id1" value="1">ラベル</label>
<label for="id2"><input type="checkbox" name="chk" id="id2" value="2">ラベル</label>
<a>ではnameとidは同じでなければなりません。
<div>などにはhtml、xhtmlともにnameは使えません。。。だったと思います。HTML4.01transitionalは非推奨だったかも。。。あとで確認せねば(汗)
ただ、このような場合に取得出来なくなるのであれば、ブラウザのバグとしか考えられないですね。
(ただでさえバグの多いプレビューリリースやアルファ版、ベータ版なら普通に考えられますが、ANo.2では(1)(2)の両方とも取得出来てませんから、同じ現象ではないですよね。)
ANo.1でコードしか言及してませんが、OS、ブラウザとバージョンは何でしょうか?
たぶん、この部分以外の所に問題があって、スクリプトがそこで止まってるんだと思います。(もう解決してると思いますが(^^;)
No.2
- 回答日時:
========testcase=============
<INPUT NAME="name1" MAXLENGTH="10" VALUE="" id="id1" >
<INPUT NAME="name2" onKeyPress="chk(event);" VALUE="" id="id2">
<script type="text/javascript">
a = document.getElementById('id1');
b = document.getElementById('id2');
alert(a);
alert(b);
</script>
==========result==============
IE 7 [object][object]
Opera 9.20 8713 [object HTMLInputElement][object HTMLInputElement]
Fx 3.0a3pre [null][null]
参考までに。
No.1
- 回答日時:
<INPUT NAME="name1" MAXLENGTH="10" VALUE="" id="id1" >
<INPUT NAME="name2" onKeyPress="chk(event);" VALUE="" id="id2">
および
a = document.getElementById('id1');
b = document.getElementById('id2');
と、確認のために追加した
alert(a);
alert(b);
を試してみましたが、[object]が2回出力(alert)されました。
再現出来ないことには原因はわかりませんので、
現象を再現出来る最低限のコードを書いてもらえないでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript Javascript初心者|jQueryの.val()で値を取得し複数の要素を連結させる方法知りたい 2 2022/06/02 12:06
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript Javascriptを使ってQRコード読み取り、取得した情報をPOSTしたいと思っています。 1 2023/04/28 15:18
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- Visual Basic(VBA) Selenium Basicの件 5 2023/04/10 20:55
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript jsで質問です。 ボタンが二つ存在し、両方のボタンがクリックされたことをチェックしたいのですが、どの 4 2022/11/22 10:30
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
createElementで作成した要素を...
-
読み込んだQRコードをフォーム...
-
javascriptテキストBOX色を元に...
-
checkboxにチェックを入れると...
-
jqueryで要素の中身を要素の外...
-
dblclickでdiv要素を一回だけ作...
-
IFRAMEの表示/非表示を切り替え...
-
removeAttribute()メソッドで削...
-
ダブルクォーテーションが消え...
-
【HP作成】クリックすると下...
-
背景色を透明化
-
取得した要素がインライン要素...
-
【javascript】document.getEle...
-
javascriptがChromeで機能しません
-
Gif画像のアニメーションが再生...
-
js ぽっぷあっぷ?
-
iframe内のリンクが飛ばないの...
-
ラジオボタンの切替で表示する...
-
jTweetsAnywhereでハッシュタグ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
javascriptテキストBOX色を元に...
-
createElementで作成した要素を...
-
読み込んだQRコードをフォーム...
-
console.log結果をhtmlで表示し...
-
iframe内のリンクが飛ばないの...
-
変数内容をHTML内で表示する方法
-
getElementByIdの戻り値がnull...
-
背景色を透明化
-
自働生成される<div>タグに連番...
-
クリックで色変更後に既に変更...
-
複数のリンク画像を一定時間で...
-
removeEventListenerについて
-
IFRAMEの表示/非表示を切り替え...
-
表示・非表示のスクリプトで、...
-
タブで開いてさらにタブ内をア...
-
Jquery 親要素で順番入れ替え
-
VBScriptでXMLのデータを取得す...
-
[急ぎ] videoタグで埋め込んだm...
-
HTML id名とjavascript変数名
おすすめ情報