web-dev-qa-db-ja.com

数値入力ボックスのフォーマットを常に更新することは良い考えですか?

フォームの一部として、数値入力ボックスがあります。大きな数字を読みやすくするために、区切られた分割を実装しています。つまり、1000000は1,000,000になります。

数値が入力されたときに、入力をコンマで自動的に更新することは良い考えでしょうか?したがって、1,000,000と入力すると次のようになります。

1
10
100
1,000
10,000
100,000
1,000,000

数がタイプされているように。

最初はそれがいい機能だと思っていましたが、混乱するかもしれません。入力ボックスへのフォーカスが失われたときに数値をフォーマットする方が良いでしょうか?

編集:

同様の質問。これらの入力ボックスには、入力可能な最大値もあります。ユーザーが有効範囲外の値を入力した場合、入力は即座に最大値に自動修正されますか、それとも入力フォーカスが失われたときにのみ行われますか?フォーカスが失われるまで待機している場合、最大値に「静かに」変更するか、または何らかのエラー表示でボックスを強調表示する必要がありますか?

28
John

ユーザーがまだ入力しているときに入力した内容を更新しないでください。入力時に編集する機能が混乱し、フィールドが動くターゲットになります。 25000をまっすぐに入力する場合、タイプミスやバックスペースがない場合は、完了時に正しいフォーマットを設定することは理にかなっています。ただし、2と5の間に0を入力するとどうなりますか?またはバックスペースを打ったとき?

また、フォーム内のフィードバックに関する調査では、更新が行われるたびにフィードバックが即時に送信されると、速度が低下することがわかっています。彼らはキーを押し、システムがフィードバックを返すのを待ってから、おそらく別のキーを押します。ここでも同じことが起こると思います。数値を追加し、書式がどのようにシフトするかを確認し、別の数値を追加し、もう一度確認してください。

テキスト入力は、操作する簡単なコントロールです。数字も簡単です。ユーザーが終了した後、それをシンプルに保ち、フィードバックを提供します(つまり、フォーマットを変更するか、範囲内にあるかどうかについてフィードバックします)。引用するには A List Apart "...ユーザーが回答の提供を終えた後にフィードバックを提供します。または、人々がより早く助けを必要とする状況では、彼らが回答に向けて取り組みますが、時期尚早のエラーメッセージが不満にならないように、適切な遅延を使用してください。」

39
Koen Lageveen

第一に、桁区切り記号は世界のすべての地域で一般的ではありません。疑わしい場合、推奨される解決策( SI/ISO 31-0標準 )は、区切り不可の 薄いスペース をセパレーターとして使用することです。

また、すべての国が数千でグループ化されるわけではないことも考慮する必要があります。ウィキペディアから:

  • 中国では、ドットが小数点として使用されるため、桁グループをマークするためにカンマとスペースが使用されます。数字のグループ化には普遍的な規則がないため、数千のグループ化と数字のグループ化の両方が見つかりません。ただし、グループ化は4桁ごとに行うこともできます。つまり、123,4567.89です。中国語の大きな数字の名前は10,000の累乗に基づいているためです(たとえば、次の新しいWordは108です)。日本も似ています。

  • インドでは、ラーク(lacs)(1,23,456は123 456に等しい)とクロア(1,23,45,678は12 345 678に等しい)を使用する数値システムのため、1000、lakh、およびcroreのレベルでコンマが使用されます。たとえば、1,000万(1クレア)は1,00,00,000と記述されます。

顧客が使用する可能性が高いグループ化のシステムがわかっている場合、セパレーターを自動的に追加します(ATMまたは現金自動支払機で一般的に行われているように) )、ただし区切り文字として改行しない薄いスペースを使用します。ほとんどの場合、数千の区切り文字を使用して問題ないでしょう。インドや他のシステムで代替システムを使用している場合は、代替バージョンに切り替えるだけです。

14
JohnGB

同じ質問があり、激しい議論の末、ユーザーが編集している間はフォーマットしないことにしました。

ユーザーが入力している間は、必要に応じてグループ化または小数点区切りを追加できます。ユーザーが追加しなかった場合は、ぼかしと同時にそれらを追加します。

ユーザーが入力できるように

100000
100,000
100,000.00
100000.00

しかし、彼がぼやけたらすぐにそれを次のようにフォーマットします

100,000.00

明らかに整数の小数点なし

@Gildasが書いたように、文化の設定も考慮する必要があります。

11
Sruly

この表記はすべてのユーザーに共通するわけではないことに注意してください。

数値フォーマットの簡略化された表:

1000000   < nobody that cares about readability
1 000 000 < Sweden, France
1,000,000 < UE
1.000.000 < Germany

金額になるのでしょうか?その場合は、右から左に入力することをお勧めします(Excelで通貨形式のセルを確認してください)。

一般的な規則として、入力を期待する必要があります。ユーザーが[、]または[]を入力していない場合は、編集モードで表示しないでください。

一方、編集モードではないときにデータをフォーマットできます。良い例は電話番号です。 (Facebookアカウントの連絡先情報を確認してください)

最大値についても同じように、必要なものを書いてもらい、関連する場合はシステムの制限に関する情報を提供します(常にシステムの障害であり、ユーザーの障害ではないことに注意してください)。

mockup

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

4
Gildas Frémont

入力中にフォーマットを適用するだけでなく、編集中にアクティブに入力を変更するために何かを行うことは、ユーザーにとって非常に敵対的です。

exシステムの制限が1,000,000で、ユーザーが値を230,015から330,015に変更しようとしています。最初に3と入力して、2を削除するための削除を続けます。代わりに、上限値への即時強制値を使用すると、3,230,015の値がすぐに1,000,000になり、ユーザーに値全体を最初から再入力するよう強制します。

編集の終了時にすぐにそれを行うことはあまり良くありません。たとえば、タイプミスとして、ユーザーは3300015と入力し、次のフィールドにタブで移動して、エラーとしてフラグが立てられるだけでなく、入力を1,000,000に置き換えるだけで、余分なゼロを編集できます。