携帯電話用のJSマスク。 jQueryを使用して電話フィールドをマスクしてチェックします。 すぐにマスクが必要

ゴロヴナ / ザク教徒

一目見ただけで答えは明らかです。バックアップ要件として電話番号フィールドを入力します。 ユーザーがサイトからアプリケーションフィールドを通じて署名できる場所もいくつかあります。 たとえば、プログラム、ソフトウェア、コンテンツを販売する Web サイトなどです。 ただし、このようなプロジェクトの顧客数は、将来の潜在的な顧客とのやり取りの可能性を可能にする追加情報として重要です。 さらに、最も簡単で効果的な解決策はマスクの使用であることは明らかです。 事例とともに取り上げてみましょう。

なぜマスクが必要なのでしょうか?

入力マスクは、どの形式でフィールドにデータを入力する必要があるかを示します。 たとえば、場所コードのない電話番号を入力したり、住所フィールドに電話番号を入力したりすると、目的の場所に移動できなくなります。 フォーム マスクによりデータが 1 対 1 で表示されるため、データベースの検索と管理が容易になります。 Netpeak の推奨事項によると、電話番号を入力するためのマスクは、サイト上の注文フォームの必須要素です。 ただし、当社のマネージャーによる実際的な推奨事項は、クライアントの成功事例に基づいています。

プログラムに特化したサイトなので、サイト上に数字を入力する欄が必須でした。 変更を可能にするために、サイトの注文フォームの「電話番号」フィールドに記入した 100 人のクライアントが Google Analytics のアカウントを変更するためにサインアップしました。 「電話番号」フィールドには、9 人の購入者からのログイン情報が入力されていません。 白樺にはマスクが配られ、女性たちはマスクを着用し始めました。 実験の純度を高めるため、フィールドから充填に必要なゴムを取り除き、その他の変更は何も加えませんでした。
ベレゼンの結果は、申請書に記入した22人の支援者を含む19の数字となった。 言い換えれば、プログラムを失った顧客の 85% が電話番号を失ったことになります。

インフォメーション センター Web サイトのケース: 電話番号フィールドの入力が 15.4% 増加

クライアントのウェブサイトは、エッセイ、コースワーク、論文、その他の作品を書くためのサービスを提供します。 連絡するには特派員の電話番号が必要ですが、サイトではこのフィールドは不要でした。 Koristuvach 氏はフォームを覚えていないか、このフィールドに何も書き込んでいない可能性があります。 以前と同様に、最初の段階で、Google Analytics の「電話」フィールドに入力するオプションをインストールしました。 このサイトによってブロックされた 59 個のアプリケーションのリストのうち、15 個には番号がありませんでした。 したがって、同社は、登録番号が記載された提出フォームの 74.6% のみを拒否しました。 次に、電話フィールドに入力するマスクを追加しました。 ウェブサイトには60件の応募があった。 この場合、6 つの記入済みフォームがクライアントの電話番号に含まれていませんでした。 また、送信された支払いフォームの 90% が電話番号フィールドに正しく入力しました。 1 か月間で - ナンバーマスクを入力してから 15.4% 増加しました。 Nasamkinets は政府機関の内部事例です。

Netpeak Web サイトの注文フォームの番号フィールドも必須です。 すべての電話番号は、クライアントが自分のアプリケーションの番号とステータスを常に把握し (SMS データに依存しています)、またアカウント マネージャーの作業を最適化するために重要です。 実験期間はアドバンストバット同様2ヶ月です。 戦争を通じて、数字を入力するためのマスクが登場し、数百のフォームに 44% から 83% (39.4% 増加) に記入されました。
実験後、マスクをウェブサイトに送信しました。 番号を入力するフィールドは不要になりました。 フィールドに間違った番号が入力された場合、申請は処理されません。 この場合、塊の最初の数字は、Web サイト上で配置されるエッジ上の位置が変わります。 前払いの形式について話している場合、電話番号を含む申請がどの程度明確であるかを知ることが重要です。 私たちは申請フォームを通じて受け取ったすべての申請を受け取り、番号なしまたは番号付きで顧客に変換された数百件を数えました。 残りは0.81%の最大の増加を示した。

注: フォームから番号を提供されたからといって、資金が復元されるという保証はありません。

フォワード エンゲージメントの形式について話していると、クライアントを再アクティブ化する可能性、つまりクライアントの特別な電話番号のデータベースを作成したマーケティング担当者に開かれた可能性が浮かび上がってきます。 再アクティベーションの成功事例については、新しい投稿で学ぶ予定です。 それまでの間、データベース内の電話番号を使用してアクションを実行する前に何ができるかについて読んでみましょう。 電話番号入力マスクの実装に対する満足度や、届いた申請数についての懸念をコメントで共有してください。

この jQuery プラグインを使用すると、入力された電話番号に基づいて、一致する入力マスクを自動的に選択できます。 これにより、bezpomilkovym を見た人のために Web サイトの側に電話番号を作成することができます。 さらに、エントリ ルールはいくつかのエントリ マスクの形式で提示される可能性があるため、プラグインのサブディビジョンは他の領域では異なる場合があります。

入力 Webサイトでは電話番号などの情報を入力する必要があります。 たまたま、各国がダイヤルと二重番号に関する独自のルールを確立する権利を持っているため、さまざまな国の居住者の間で定期的に混乱が生じます。先頭の数字が8の番号を呼ぶ人もいれば、電線から電話する人もいます。 1 つの数値は 0 で、3 つ目の数値は + 記号です。 主な解決策 問題の複雑さを軽減し、数値を 1 つの形式に統一するには、次の 3 つの主な解決策があります。
  • 追加の入力マスクを使用して番号を入力するように求められます。 利点: 数値を最小限に抑えて表示します。 Nedolyk: 皮膚の端には、その日の数字が独自に書かれています。
  • Koristuvachev は、地域を直接選択し、欠落している番号の部分を直接入力するように求められます。 おそらくマスクが所定の位置に固定されているためです。 利点: 異なる領域 (および領域の中央の領域) に異なるマスクを使用できる可能性。 欠点: エッジ (およびスキン エッジの中央の領域) のリストが大きくなる可能性があります。 電話番号全体が表示されなくなります (または、番号を保存して表示する前に再処理が必要です)。
  • 数値の前 (入力スペースの後ろ) に + 記号を配置すると、数値の入力を省略できます。 利点: 導入が簡単。 物足りなかった点:ナンバーディスプレイの有無。
  • 提案された解決策 その結果、元の入力マスクを修正して、数値の行値に応じて変更されるようにすることにしました。 また、数字を入力すると入力した国名が表示されます。 このアプローチは、主観的には、治療の欠点をすべて解決できます。

    世界の国の数が著しく少ないという事実に基づいて、すべての国を対象としたマスクのリストを作成することが決定されました。 実際、国際電気通信連合のウェブサイトに掲載されたニュースレポートは広く検討されました。

    この情報を収集すると、多くの驚きが得られました。 情報収集の過程で、地域内の電話番号の可能なすべてのオプションを含める必要がありました。 ただし、手動で収集された情報が大量にあるため、収集されたデータベースに不正確な部分が存在する可能性があります。 1 時間以内に穂軸セットを修正する予定です。

    ソフトウェア実装 入力マスクの中核は jquery.inputmask の vicoristan 実装であり、これについては Habrahabr がよく議論しています。 このプラグインは現在積極的に開発されており、拡張機能を記述するだけで簡単にできるように設計されています。 しかし、そのような拡張を書くというこの作業は事実上不可能であることが判明しました。 私は、ニーズに合わせて出力プラグインを改善し、書き直すことにしました。 作者は機能拡張に積極的に取り組み続けているため、私の編集が停滞した結果、問題が生じる可能性があります。 したがって、外部アクティビティを処理 (およびオーバーライド) し、データ変更を実行するメイン コア上にプラグインを作成する機会がありました。 新しい入力のバインダーをメイン プラグインのピッカーに転送するには、jquery.bind-first プラグイン ライブラリを使用します。 並べ替えのルールを作成する際には、次の考え方が採用されました。
  • 入力フィールド内のすべての記号は、重要な記号 (私が選択したものには、有効な数字 0 ~ 9 を意味する # 記号があります) と装飾記号 (その他すべて) の 2 つのタイプに分類されます。
  • 入力マスク内の別のタイプの記号は、テンプレート記号 (場合によっては # 記号) などです。
  • その結果、分類順に次のような並べ替えルールが浮かび上がりました。

  • 2 つのマスクを 1 文字ずつ変更する場合、重要な文字 (デコレータではない) のみが受け入れられます。
  • さまざまなワイルドカード文字は同等として扱われ、その他の重要な文字はそのコードと同等です。
  • 非テンプレート文字は常にテンプレート文字よりも小さく、その結果、より多様になります。
  • 入力マスク内の有効なシンボルの数が少ないほど、入力マスクの値は大きくなります。
  • スキン マスク入力の検索 ブラック マスクを含む入力テキストがイコライズされると、ソートされたリストからスキン マスクの最下位文字が取得されます。 すべての先頭文字が検証されたかどうかに関係なく、行が入力マスクに従っているように見える場合、指定された入力マスクは矛盾していると見なされます。 入力テキストがいくつかの入力マスクを満たしている場合、そのうちの最初の入力マスクが回転されます。 次に、見つかったパターンで、すべての重要なシンボル (テンプレート以外のシンボルを含む) が、テンプレート シンボルのいずれかで許可されるすべてのシンボルの組み合わせであるテンプレート シンボルに置き換えられます。
    • キーダウン - 続いて Backspace キーと Delete キーを押す - メイン プロセッサがテキストから 1 文字を削除するため、前に入力したフロー マスクを変更します。 さらに、同期のためのテキスト入力モードを変更する Insert キーを押す必要があります。
    • キーを押す - 入力する文字の一部は、元の入力マスクでは許可されない可能性があります (その中のすべての重要な文字はテンプレートの文字に置き換えられます)。新しい行が許可されたマスクの 1 つと一致するかどうかを確認する必要があります。 そのようなマスクがない場合、シンボルへの入力は破棄され、そうでない場合は入力マスクが更新され、その後入力がカーネル アナライザーに転送されます。
    • 貼り付け、入力 - クリップボードからテキストを貼り付けます。 処理をカーネルに転送する前に、クリップボードからテキストを貼り付けた結果の行に対してマスクが選択されます。 入力マスクが選択されていない場合、テキストは 1 つの入力マスクで満足されるまで、端から 1 文字ずつトリミングされます。 val()関数をクリックして入力フィールド内のテキストを修正する場合や、入力フィールドに設定されている入力マスクを初期化する場合も同様の操作が行われます。
    • ドラッグドロップ、ドロップ - プロセスはペーストと似ています。
    • ぼかし - 入力マスクを満たさないため、フォーカスを失ったときにテキストをクリアするモードが増加するための追加処理。 このアイデアは、メイン コンパイラの後、フロント コンパイラの先頭に移されます。

    すべてのアイデアは、入力されたマスクの範囲内に表示されます。 これにより、入力の初期化後にインプットマスクをクリックしたときの誤った動作を回避できます (カーネルは初期化時に、インプットマスク空間に以前にインストールされたすべてのプローブを記憶しているため)。

    Wiki の例 マスクのリストの形式 マスクのリストは、さまざまな権限セットを持つ重要なオブジェクトの JavaScript 配列です。 入力マスクを配置するための少なくとも 1 つの機能が、配列内のすべてのオブジェクトに存在する可能性があります。 マスクを適用するパラメータの名前で十分な場合があります。 以下はそのような配列の一部です。
    [ … ( "マスク": "+7(###)###-##-##", "cc": "RU", "name_en": "ロシア", "desc_en": "", " name_ua": "ロシア", "desc_ua": "" ), ( "mask": "+250(###)###-###", "cc": "RW", "name_en": "ルワンダ", "desc_en": "", "name_ru": "ルワンダ", "desc_ru": "" ), ( "マスク": "+966-5-####-####", "cc ": "SA", "name_en": "サウジアラビア", "desc_en": "モバイル", "name_ru": "サウジアラビア", "desc_ru": "モバイル" ), ( "マスク": "+966- #-###-####", "cc": "SA", "name_en": "サウジアラビア", "desc_en": "", "name_ru": "サウジアラビア", "desc_ru": " " ), … ] プラグイン接続パラメータ 接続する前に、マスクのリストを選択して並べ替える必要があります。 ヴィコンの攻撃的な機能を回避することが重要です。
    $.masksSort = function(maskList, defs, match, key)
    • MaskList - 入力マスク (素晴らしいオブジェクトのフラグメント) を保存するオブジェクトの配列。
    • defs – テンプレート シンボルの配列 (私の場合、これは # シンボルです)。
    • match - 重要な文字を説明する正規表現 (この場合は /|#/)。
    • key – 入力マスクを配置する配列のオブジェクト パラメーターの名前。

    接続すると、プラグインにはロボットを説明する特別なオブジェクトが渡されます。 このオブジェクトには、次のパラメータのセットが含まれています。

    • inputmask - メインの inputmask プラグインに渡されるパラメーターを含むオブジェクト。
    • match - テンプレート文字に加えて、意味のある文字を記述する正規表現。
    • replace - すべての重要な文字を置き換えるワイルドカード文字。 putmask で指定されたオブジェクトのオブジェクト内にある可能性があります。
    • list – 入力マスクを記述するオブジェクトの配列。
    • listKey – 入力マスクを保存するオブジェクトの中央にあるパラメータの名前。
    • onMaskChange - 入力マスクが更新されたときに呼び出される関数。 最初のパラメータが配列内のオブジェクトに渡されると、それぞれの入力マスクは入力されたテキストと一致し、もう一方 - 割り当てられたマスクの精度: true - 入力マスクは入力マスクと一致し、false - 信頼できるマスクの場合マスクの値を変更するには、追加の文字を入力する必要があります。

    プラグインを初期化するには、入力フィールドの前に入力マスク メソッドを配置する必要があります。
    $.fn.inputmasks = function(maskOpts, モード)

    • MaskOpts - プラグインの動作を説明するオブジェクト。
    • モード – 非言語。 現時点では、値 isCompleted がサポートされています。その結果、入力フィールド内のテキストが追加された場合、メソッドは true になり、それ以外の場合は false になります。
    プラグイン接続例
    入力マスク var MaskList = $.masksSort($.masksLoad("phone-codes.json"), ["#"], /|#/, "mask"); var MaskOpts = ( inputmask: ( 定義: ( "#": ( validator: ""、カーディナリティ: 1 ) )、//clearIncomplete: true、showMaskOnHover: false、autoUnmask: true )、match://、replace: "# "、リスト:maskList、listKey:「マスク」、onMaskChange:function(maskObj、完了)(if(完了)( varヒント = MaskObj.name_ru; if(maskObj.desc_ru && MaskObj.desc_ru != "")(ヒント + = "(" + MaskObj.desc_uk + ")"; ) $("#descr").html(hint); ) else ( $("#descr").html("入力マスク"); ) $(this ).attr("プレースホルダー", $(this).inputmask("getemptymask")); ) ); $("#phone_mask").change(function() ( if ($("#phone_mask").is(":checked")) ( $("#customer_phone").inputmasks(maskOpts); ) else ( $ ("#customer_phone").inputmask("+[###################]], MaskOpts.inputmask) .attr("プレースホルダー", $("# customer_phone ").inputmask("getemptymask")); $("#descr").html("入力マスク"); ) )); $("#phone_mask").change(); デモ デモの例拡張ビュープラグイン

    © 2024 androidas.ru - Android のすべて