質問: いつもお世話になっております。 jquery初心者です。 JANコードを連続で20個読み取る事ができる画面を作成しています。 初期生成されるテキストボックスに13文字入力した後、 新たにテキストボックスを生成し、次のテキストボックスにフォーカスを合わせるソースコードを書きたいと思っています。 初期生成されるものを含め、合計20個のテキストボックスを生成したいと考えていますが、 20個でテキストボックスを生成を止めること、また生成したテキストボックスにフォーカスを移動することができず、困っております。 初心者でソースコードが見にくいと思いますがご助言お願い致します。 ``` ```
回答: ■ 生成したテキストボックスにフォーカスが当たらない ``` var n=$('input[type=text][id^="card_number"]'); //最初のテキストボックスにフォーカスする n.first().trigger('focus') .end().on('keyup',function() { ・・・ ``` ここで取得した n に対してイベント keyup を設定しているからです。 このnには、 id=card_number1 id=card_number2 しか入っていませんので、 後から追加された分のテキストボックスにはforcusできないですし、keyupイベントも起こりません。 ■ 20個でテキストボックスを生成を止める その意思を感じられるコードが見当たりませんので、 他部分がうまく動く場合、テキストボックスは無限に増え続けると思います。 テキストボックスを生成する部分で、20個未満なら作りますよ 的な判断を付けたらいいですね。