web-dev-qa-db-ja.com

特殊文字以外のテキストボックスの場合、インライン検証メッセージを使用するか、ユーザーが無効な文字を入力できないようにする必要がありますか?

特殊文字を許可しないことを意味する1つのテキストボックスがあります。今、私は以下のアプローチを選択する必要があります:

  1. ユーザーがブラックリストに文字を入力すると、「char *は使用できません」(A)または「入力に%$ *&を含めることはできません」(B)などのインライン検証メッセージが表示されます。
  2. ユーザーが無効な文字を入力できないようにします。つまり、ユーザーがブラックリストにある文字をヒットした場合、何も起こりませんでした。

どのアプローチを取るべきですか?

4
tiengtinh

アプローチ2(無効な文字をブロックする)を使用すると、ユーザーはすばやく何かを入力し、最終的に希望どおりの結果にならない可能性があります。

ユーザー名フィールドに標準のアクセントなし文字のみを含める必要があるとしましょう。ユーザーは問題なくJuergenを入力できます。しかし、使用しようとしています ü ueの代わりに無視され、ユーザーは最終的にJrgenになります。

$4nta Cl4u$のようなユーザー名を作成しようとすると、同様に邪魔になります:ntaClu

これは悪いことです。ユーザーは省略されたものとその理由を調べ、修正する必要があります。アプローチ2は避けてください。

したがって、方法1(検証メッセージ)をお勧めします。これは、フォームの送信後に返されるのではなく、入力時にインラインにする必要があります。

入力時にユーザーの無効な文字をメッセージに追加することをお勧めします。したがって、その文字が入力されるとすぐにメッセージYou cannot use üが表示されます。 2番目の例では、最終的にはYou cannot use $4[space]になります。 (実際には、空白文字ではなく[space]を使用します。)

方法1では、ユーザーが有効なが何であるかを正確に見つけることができるように、いくつかのヘルプも利用できるようにすると便利です。それはツールチップとして表示されるか、別のページを開きます。

mockup

download bmml sourceBalsamiq Mockups で作成されたワイヤーフレーム

6
Andrew Leach