検索
ホームページウェブフロントエンドjsチュートリアル基本を超えて: `` を使用してプロのように数値入力を処理する

とは何ですか?

MDN ドキュメントの定義によると: タイプ数値の要素は、ユーザーが数値を入力できるようにするために使用されます。これらには、数値以外のエントリを拒否するための組み込み検証が含まれています。

つまり、基本的には、つまらない Web サイトや Web アプリのユーザー エクスペリエンスを向上させるための機能です。これは数値入力を簡略化するための優れた機能ですが、最初は明らかではないかもしれませんが、Web 開発者として認識しておく必要がある動作がいくつかあります。

これらの動作は以下に関連しています:

  1. 仮想キーボード
  2. 科学的記法

仮想キーボード

仮想キーボードは、通常、携帯電話、タブレット/iPad、一部の支援技術などのタッチ入力デバイスの画面に表示されるキーボードです。

<input id="numeric-input" type="number">

type="number" を使用するだけで最初は問題ないように思えますが、仮想キーボードを使用する場合には問題があります。数字キーボードではなくフルキー キーボードが開く可能性があり、ユーザー エクスペリエンスと入力精度が損なわれる可能性があります。

Beyond Basics: Handling Numeric Inputs Like a Pro with `<input type=`" />

ソリューション入力モード

仮想キーボードの問題は、新しい OS やブラウザのバージョンでは発生しない可能性がありますが、要素またはその要素の編集中にユーザーが入力する可能性のあるデータの種類を示すため、inputmode 属性を使用することをお勧めします。コンテンツ。
これにより、ブラウザーはすべてのバージョンとデバイスに適切な仮想キーボードを表示できるようになり、アプリケーションの全体的なユーザー エクスペリエンス (UX) が向上します。

inputmode には多くの値を指定できますが、数値入力を使用するユースケースでは、次の 2 つの値のいずれかを使用する必要があります。
1.数値

<input id="numeric-input" type="number" inputmode="numeric">

入力タイプの数値は、任意の有理数値を受け入れます。小数値を受け入れず、整数のみを受け入れる場合、そのようなシナリオでは数値の使用を優先する必要があります。

2.10 進数

<input id="numeric-input" type="number" inputmode="decimal">

小数を受け入れる場合は、ユーザーのロケールの数字と小数点区切り文字を含む仮想キーボードが表示されるため、10 進数値を使用してください。

小数値を受け入れない場合を除き、入力では常に 10 進数値を使用することを好みます。

Beyond Basics: Handling Numeric Inputs Like a Pro with `<input type=`" />

科学表記法

私たちの多くは、e または E が科学表記法で有効な数値であることを忘れているか、知らないかもしれません。

Beyond Basics: Handling Numeric Inputs Like a Pro with `<input type=`" />

はい、e または E は科学表記法の 「10 の指数」 を意味し、非常に大きい値または小さい値を表すために使用されます。例:

1e5 = 100000 
     or 
1e-5 = 0.00001

HTML 入力タイプの数値は柔軟性を念頭に置いて設計されており、この科学表記法をサポートしており、指数の入力が可能です (例: 1e5)。これ自体は問題ではなく、状況によっては便利ですが、入力が基本的な数値のみで構成されている必要がある場合には問題になる可能性があります。

入力を数値のみに制限し、科学表記法を許可しないようにするには 2 つの方法があります。

  1. 正規表現を使用しますか?パターン。
  2. JavaScript を使用します (私の推奨方法)。

Javascript を使用したデフォルトの動作の防止

ほとんどのシナリオでは、「e」または「E」表記は不要であり、許可すると予期せぬ問題が発生する可能性があるため、ユーザーには入力させたくありません。

これを実現する方法はたくさんありますが、私のお気に入りの方法は、「e」または「E」キーが登録されないようにすることです。これは、keydown イベントとPreventDefault を使用して実現できます。

 element.addEventListener("keydown", (e) => {
    if (["e", "E"].includes(e.key)) {
      // you can also add "+" and "-" if you want to prevent them from being registered.
      e.preventDefault();
    }
  });

私がこの方法を特に気に入っているのは、次の 3 つの理由からです。

  • 後でコードを読む人に、e または E キーを登録したくないという明確なメッセージを提供します。
  • 値を変更する代わりにキー自体を登録しないため、UX も向上します。
  • keydown イベントのタイプは KeyboardEvent で、これによりキー値に直接アクセスでき、ソリューション全体の DX が向上します。

すべての数値入力が入力タイプ番号である必要はない

数値入力を受け入れる入力要件を見た場合、本能的に入力タイプ番号に手が伸びることがありますが、そのようなシナリオでは入力タイプ番号が適切なソリューションではない場合もあります。

そのようなシナリオの例をいくつか示します。

  • クレジット カード/デビット カード: クレジット カード/デビット カードの入力フィールドがある場合、入力タイプ番号を使用する代わりに、入力モードが数値および入力タイプのテキストを使用することをお勧めします。クレジット カードには先頭にゼロの値を含めることができ、ブラウザによってはそれが許可されない場合があるため、お好みの方法で検証してください。また、カード固有の検証を追加したり、(カードに印刷されているように) 4 つの数字のグループ間にスペースを入れたりすることもできます。 )。

  • 郵便番号: ほとんどの国には数字の郵便番号がありますが、カナダなど一部の国では英数字のコードが使用される場合があります。必要に応じてソリューションを使用することが重要です。入力タイプは数字である可能性があります。またはテキストを入力します。

  • 携帯電話番号: ユースケースに適した正規表現パターンを持つ input="tel" の入力タイプを常に使用する必要があります。

結論

最新の HTML は非常に優れたユーティリティを提供しているため、入力タイプ番号などの実装は非常に簡単に思えるかもしれませんが、開発者として、これらのユーティリティと、それらをどのように利用してさらに優れたユーザー エクスペリエンスを作成できるかに常に注意を払う必要があります。

この記事が気に入った場合は、反応を残してください。何か気に入らなかった場合は、コメントにフィードバックを残してください。

私はテクノロジーやそれにまつわる出来事について人々とつながり、話すことが好きです。 Twitter/X および LinkedIn で私とつながることができます。

Dev.to で私をフォローして、新しい記事を公開するたびに通知を受け取ることもできます。

以上が基本を超えて: `` を使用してプロのように数値入力を処理するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
JavaScriptエンジンの理解:実装の詳細JavaScriptエンジンの理解:実装の詳細Apr 17, 2025 am 12:05 AM

JavaScriptエンジンが内部的にどのように機能するかを理解することは、開発者にとってより効率的なコードの作成とパフォーマンスのボトルネックと最適化戦略の理解に役立つためです。 1)エンジンのワークフローには、3つの段階が含まれます。解析、コンパイル、実行。 2)実行プロセス中、エンジンはインラインキャッシュや非表示クラスなどの動的最適化を実行します。 3)ベストプラクティスには、グローバル変数の避け、ループの最適化、constとletsの使用、閉鎖の過度の使用の回避が含まれます。

Python vs. JavaScript:学習曲線と使いやすさPython vs. JavaScript:学習曲線と使いやすさApr 16, 2025 am 12:12 AM

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

Python vs. JavaScript:コミュニティ、ライブラリ、リソースPython vs. JavaScript:コミュニティ、ライブラリ、リソースApr 15, 2025 am 12:16 AM

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

C/CからJavaScriptへ:すべてがどのように機能するかC/CからJavaScriptへ:すべてがどのように機能するかApr 14, 2025 am 12:05 AM

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

JavaScriptエンジン:実装の比較JavaScriptエンジン:実装の比較Apr 13, 2025 am 12:05 AM

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

ブラウザを超えて:現実世界のJavaScriptブラウザを超えて:現実世界のJavaScriptApr 12, 2025 am 12:06 AM

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)Apr 11, 2025 am 08:23 AM

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合)Apr 11, 2025 am 08:22 AM

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境