いつもお世話になっております。
jquery初心者です。
Androidベースのバーコードリーダーで
JANコードを連続で20個読み取る事ができる画面を作成しています。
webブラウザはGoogle chrome 56.0 を使用しています
初期生成されるテキストボックスに13文字入力した後、
新たにテキストボックスを生成し、次のテキストボックスにフォーカスを合わせるソースコードを書きたいと思っています。
初期生成されるものを含め、合計20個のテキストボックスを生成したいと考えていますが、
20個でテキストボックスを生成を止めること、また生成したテキストボックスにフォーカスを移動することができず、困っております。
初心者でソースコードが見にくいと思いますがご助言お願い致します。
<!DOCTYPE html> <head> <meta charset="UTF-8"> <script src="jquery-3.3.1.min.js"></script> </head> <body> <form> <div id="jan_input"></div> <input type="submit" value="送信"> </form> </body> <script> $(function(){ var id_name = ["card_number1","card_number2","card_number3","card_number4","card_number5","card_number6","card_number7","card_number8","card_number9","card_number10","card_number10","card_number11","card_number12","card_number13","card_number14","card_number15","card_number16","card_number17","card_number18","card_number19","card_number20"]; var piyo = document.getElementById("jan_input"); jan_input = document.createElement("input"); br = document.createElement("br"); jan_input.setAttribute("type", "text"); jan_input.setAttribute("id", id_name[1]); jan_input.setAttribute("maxlength", "13"); jan_input.appendChild(br); piyo.appendChild(jan_input); piyo.appendChild(br); jan_input = document.createElement("input"); br = document.createElement("br"); jan_input.setAttribute("type", "text"); jan_input.setAttribute("id", id_name[2]); jan_input.setAttribute("maxlength", "13"); jan_input.appendChild(br); piyo.appendChild(jan_input); piyo.appendChild(br); var n=$('input[type=text][id^="card_number"]'); //最初のテキストボックスにフォーカスする var i=3; // id_name[]の添字 n.first().trigger('focus') .end().on('keyup',function() { var idx=n.index(this); var next_idx=idx>=n.length-1?0:idx+1; if($(this).val().length>=$(this).attr('maxlength')){ $(this).attr('readonly',true); //13文字テキスト入力後、テキストボックスを読取り不可にする jan_input = document.createElement("input"); br = document.createElement("br"); jan_input.setAttribute("type", "text"); jan_input.setAttribute("id", id_name[i]); jan_input.setAttribute("maxlength", "13"); jan_input.appendChild(br); piyo.appendChild(jan_input); piyo.appendChild(br); i++; n.eq(next_idx).trigger('focus'); //次のテキストボックスへフォーカス }; }); }); </script> </html>



回答1件
あなたの回答
tips
プレビュー