JavaScriptの質問です。ページのなかにinput01,input02,input03.....input99という名前が付いた100個のinput要素があります。これらに入力された値を配列に格納したいのですが、やり方を教えていただけないでしょうか。

for(i=0;i<100;i++)を使って値の取得を100回繰り返せばいいかと思ったのですが、document.form.input[i].valueというエレメントの指定のやり方では値を取得できないようなのです。どのようにすればよいのでしょう?

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2007/04/20 13:30:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:aside No.1

回答回数339ベストアンサー獲得回数31

ポイント27pt

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()">

id:lains_you No.2

回答回数50ベストアンサー獲得回数10

ポイント27pt

 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>
id:F-15X No.3

回答回数111ベストアンサー獲得回数13

ポイント26pt
<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など)

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません