人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

JavaScriptの質問です。ページのなかにinput01,input02,input03.....input99という名前が付いた100個のinput要素があります。これらに入力された値を配列に格納したいのですが、やり方を教えていただけないでしょうか。
for(i=0;i<100;i++)を使って値の取得を100回繰り返せばいいかと思ったのですが、document.form.input[i].valueというエレメントの指定のやり方では値を取得できないようなのです。どのようにすればよいのでしょう?

●質問者: pha
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:JavaScript 入力 名前 配列
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● aside
●27ポイント

formを気にしなくてよければこれでいける(input2個サンプル)

?スクリプト部分?

function _onclick() {

for (var i=1;i<3;i++) {

alert(document.getElementsByName("input"+(i<10?"0"+i:i))[0].value);

}

}

?html部分?

<input type="text" name="input01">

<input type="text" name="input02">

<input type="button" value="test"onclick="_onclick()">


2 ● lains_you
●27ポイント

getElementByIdメソッドで対象のフォームを取得した後、そのフォームに含まれているinput要素をgetElementsByTagNameメソッドですべて取得することができます。

以下、私が試したサンプルです。

<html>
<head>
<script type="text/javascript">
function test(){
//IE限定
//var input = document.all.testForm.tags("input");
//alert(input[0].value);
//alert(input[1].value);
//alert(input[2].value);

//Firefoxでも動作
var form = document.getElementById("testForm");
var input = form.getElementsByTagName("input");
for( var cnt=0 ; cnt<input.length ; cnt++ )
alert(input[cnt].value);
}
</script>
</head>
<body onload="test();">

<form id="testForm">
<select>
<option>option1</option>
<option>option2</option>
<option>option3</option>
</select>
<input type="text" value="test1 value">
<span>span</span>
<input type="text" value="test2 value">
<div>div</div>
<input type="text" value="test3 value">
<button>button</button>
</form>

</body>
</html>

3 ● F-15X
●26ポイント
<html>
<body>
<input type="text" name="t1" value="1">
<input type="text" name="t2" value="2">
<input type="button" name="b" value="ok" onclick="test();">
</body>
</html>
<script type="text/javascript">
<!--
function test(){
 var txtObjAry = new Array();
 var inpObjAry = document.getElementsByTagName("input");
 var j=0;
 for (var i=0; i<inpObjAry.length; i++){
 if(inpObjAry[i].type=="text"){ // ここで属性を絞り込む (text,button,checkboxなど)
 txtObjAry[j] = inpObjAry[i];
 j = j + 1;
 }
 }
 for (var i=0; i<txtObjAry.length; i++){
 alert(txtObjAry[i].value);
 }
}
// -->
</script>

※ポイント:ここで属性を絞り込む (text,button,checkboxなど)

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ