入力グループを便利にする方法

jossky.comのノートサービスに取り組んでいたとき、Ostrovokで働く前に、2つの入力から電​​話番号を入力する必要がありました。 このようなもの:



矢印を使用してナビゲーションを作成しました。 いっぱいになると、フォーカスが次の入力に切り替わるようにしました。 しかし、クリップボードから正しいペーストを作成することに成功しませんでした。

maxlength属性にマージンを設定することにより、バッファからの挿入を実装できます。 都市コードの場合、その値は少なくとも電話番号の長さ、つまり3ではなく10でなければなりません。

問題は、数字の間に偶数を挿入することでさえありませんでした。 しかし、キーボードのボタンを押したままにしなかった場合、動作は非常に奇妙であることが判明しました:最初に1つの入力がmaxlength全体で満たされ、その後、ユーザーがキーを押し、数字が残りの入力に分配されるという事実のためにちらつきを受け取ります。

ちなみに、それは2008年で、私が見た唯一の機会はsetTimeout介してすべてをプログラムすることでした。 開発時間と不満足な結果を予想して、この形式を組み合わせて、今日まで変わらずに残った形式にしました。

年が過ぎました。 ブラウザはoninputイベントを実装しoninputた。 コミュニティはIEでonpropertychangeイベントをonpropertychangeました。 そして、私の前に、すでにオストロフカで、私はクリップボードからクレジットカード番号の挿入を実現すると同時に、その有効性の分野で仕事をしなければなりませんでした。



これは、全体として問題を解決するためのサインでした。 蓄積された経験と数十の単体テストで、フィールドの入力がユーザーにとって最も自然な他のイベントの組み合わせを見つけることができました。

jQuery Group Inputs-入力をグループ化するためのプラグインに会います。

入力は、共通のデータがあるかのように動作し始めます。
-場所が終わると、キャリッジが移動します
-左/右ボタンは、キャリッジを次/前の入力に移動します
-テキストを挿入すると、入力ごとにテキストが散らばります。挿入後、カーソルは1つの入力のようになります。

使用例:
 <script src="jquery-1.7.2.js"></script> <script src="jquery.groupinputs.js"></script> <input type="text" maxlength="4" class="group1" name=""> <input type="text" maxlength="4" class="group1" name=""> <input type="text" maxlength="4" class="group1" name=""> <input type="text" maxlength="4" class="group1" name=""> <script> $('.group1').groupinputs(); </script> 


GitHubリポジトリ
デモ

投稿者: lusever

Source: https://habr.com/ru/post/J148292/


All Articles