次の方法で共有


テキスト ボックスで特定の文字だけを許可する (C#)

作成者: Christian Wenz

PDF のダウンロード

ASP.NET 検証コントロールでは、ユーザー入力で特定の文字のみが許可されるようにすることができます。 ただし、それでもユーザーが無効な文字を入力してフォームを送信しようとするのを防ぐことはできません。

概要

ASP.NET 検証コントロールでは、ユーザー入力で特定の文字のみが許可されるようにすることができます。 ただし、それでもユーザーが無効な文字を入力してフォームを送信しようとするのを防ぐことはできません。

手順

ASP.NET AJAX Control Toolkit には、テキスト ボックスを拡張する FilteredTextBox コントロールが含まれています。 アクティブにすると、特定の文字セットしかフィールドに入力できません。

これを機能させるには、まず、ASP.NET AJAX Control Toolkit でも使用される JavaScript ライブラリを読み込む ASP.NET AJAX ScriptManager が通常どおり必要です。

<asp:ScriptManager ID="asm" runat="server" />

次に、テキスト ボックスが必要です。

Numbers only: <asp:TextBox ID="TextBox1" runat="server" />

最後に、FilteredTextBoxExtender コントロールは、ユーザーが入力できる文字を制限する処理を行います。 まず、TargetControlID 属性を TextBox コントロールの ID に設定します 次に、使用可能な FilterType 値の 1 つを選択します。

  • Custom 既定。有効な文字のリストを指定する必要がある
  • LowercaseLetters 小文字のみ
  • Numbers 数字のみ
  • UppercaseLetters 大文字のみ

Custom FilterType を使用する場合は、ValidChars プロパティを設定し、入力できる文字のリストを指定する必要があります。 ちなみに、テキスト ボックスにテキストを貼り付けようとすると、無効な文字はすべて削除されます。

数字のみを許可する FilteredTextBoxExtender コントロールのマークアップを次に示します (FilterType="Numbers" でも可能であったもの)。

<ajaxToolkit:FilteredTextBoxExtender ID="ftbe" runat="server"
 TargetControlID="TextBox1" ValidChars="1234567890" />

JavaScript が有効になっている場合は、ページを実行して文字を入力してみてください。この操作は機能しません。ただし、数字はページに表示されます。 ただし、FilteredTextBox が提供する保護は完全ではないことに注意してください。JavaScript が有効な場合、テキスト ボックスに任意のデータを入力できるため、追加の検証手段、つまり ASP.NET の検証コントロールを使用する必要があります。

Only digits may be entered

数字のみを入力できます (クリックしてフルサイズの画像を表示します)