これまで、私たちのアプリケーションでは、非常に古典的な方法でフォームの数値をフォーマットしてきました。jquery とそのプラグインのグローバリゼーションを使用しています。
ユーザーが特定のクラス (フォーマット タイプを表す) を持つ入力要素を選択すると、値のフォーマットが解除され、ユーザーがフォーカスを離すと、再度フォーマットされます。
数値のフォーマットを解除しない効率的な方法はありますか: ユーザーが入力フィールドを選択すると、値を変更して表示形式を維持できます。
編集
mplungjan のコメントを確認した後、グローバリゼーション プラグインからの I18N 形式の辞書を jquery マスク入力プラグインで使用できるかどうかを知りたいと思います。
編集2
マスクのフォーマットをユーザーの言語に合わせたいと思います。クライアントの I18N には、このプラグインを使用しています。このプラグインは、文化ごとのフォーマットの辞書を持っています。
私たちのアプリケーションでは、ほとんどの数値フィールドに小数点以下 2 桁があります。フランス語で 1 000,00、イタリア語で 1.000,00、英語で 1,000.00 などです。フィールドに既に値 (例ではイタリア語で 1.000,00) がある場合、現在、ユーザーがフィールドをフォーカスで選択すると、フィールドを変形し、次のように表示します: 1000 (小数点は .ゼロ以外の 10 進数がある場合)。そして、ユーザーがいつフィールドを解放するか。
フィールドがフォーカスされている間、フォーマットされた値を保持することでこれを改善したいと思います。小数点以下 2 桁を除いて、数値に関する制約はなくなりました。
編集3
このマスク プラグインを試しましたが、必要なことを正確に行うことができません。小数点以下 2 桁の数値に対して動的マスクを作成したいと思います。しかし、ユーザーが小数を書き込まない場合、ぼかしイベントで英語では .00 (フランス語とイタリア語ではそれぞれ ,00) でオートコンプリートされることも素晴らしいことです。
このマスクは、(オートコンプリートを除いて) ほとんど必要なものです: 9{1,3}( 999){0,3}[,99]。しかし、その動作はユーザーにとって依然として非常にトリッキーです。最初のブロック ("9{1,3}") はまさに私が探している動作をしています。次に、ユーザーが数字を書き続けると、最後のブロック ("[,99]") に直接ジャンプします。大きな数を書き込むには、ユーザーは明示的にスペースを書き込む必要があります。
後者は、スペースを桁区切り記号に、「,」を小数点記号に置き換えることができます。
誰かが私のマスクを改善する方法や別のプラグインについてアイデアを持っている場合は、喜んでコメントを読んでください.