javascript の配列は、ゼロ始まりです。
しかも、サイズを超えた添え字のところに書きこむと、自動で拡張します。
なので、期待通りに動かすとしたら、こうなります。
function prechk(){ var required=new Array(3); for(i = 0 ; i < required.length ; i++) { // ★1 required[i]=document.getElementById("required"+(i+1)).value; // ★2 alert(required[i]); } }
★1 : ループは、0から required.length - 1 まで。
★2 : i が0から始まるので、id を決めるときに+1する。
配列の要素数をループ条件に使おうとせず、素直に1?3までループしてはどうでしょうか?
function prechk(){ var required = new Array(); // 長さ0の配列を作成 for(i=1; i<=3; i++){ var val = document.getElementById("required"+i).value; required.push(val); // value値を配列に追加 alert(val); } }
javascriptの配列はpushを利用して、添え字を意識せずに要素を次々に追加してゆくことができます。