前提・実現したいこと
ユーザーが入力した値を繰り返し処理を用いて取得→配列に格納したいです。
したいのですが、条件があります。
1.ユーザーが入力するinput要素は5つ
2.input要素1つずつが、「フォーカスアウト時に」正規表現を行う(今回、正規表現はhtmlに書かないので省いています。そういう問題を解いていると思ってください)
上の条件を満たしつつ、値を繰り返し処理を用いて取得→配列に格納する方法のヒントをいただきたいです。
発生している問題・エラーメッセージ
1度動かしてから気づいたのですが、onblurを使うと1つのinputにユーザーが入力する度に空っぽの配列ができます。
6個のinputで配列が6個できてしまいます(やりたいのは1つの配列に値を6つ)。
私が実現したいことを実現するには、onblurを使っていては実現できないでしょうか?
その辺りに関しても、私が無知なので実現できていないのか、そもそも難しいのかを教えていただきたいです。
該当のソースコード
<form> <input type="text" id="number1" class="number" value="" onblur="check1()"><br> <input type="text" id="number2" class="number" value="" onblur="check1()"><br> <input type="text" id="number3" class="number" value="" onblur="check1()"><br> <input type="text" id="number4" class="number" value="" onblur="check1()"><br> <input type="text" id="number5" class="number" value="" onblur="check1()"><br> <input type="text" id="number6" class="number" value="" onblur="check1()"><br> <input type="button" value="結果" id="btn" onclick="window.click()"><br> </form> function click(){ //あってるかわかりませんが、下のようなfor文でフォーカスアウトされる度に配列にユーザーが入力した数字を格納したいです。getElementByIdの後のidのループのさせ方はやり方がわからないので、やりたいイメージを書いています。 var y = []; for ( var i = 1; i <= 6 ; i++ ) { y.push(document.getElementById('number' + i).value); }
回答2件
あなたの回答
tips
プレビュー