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