1

何年も前にこの種の状況に対処しなければならなかったことを思い出し、オンラインで知ることができる限り、それは本当に簡単ではありませんでした.

考えられるシナリオは 2 つあります。1 つは、ユーザーが入力ボックスを終了した後、コンマでフォーマットされた数値を表示したい場合です。もう 1 つは、ユーザーが実際にコンマを入力する場所です。

どちらの状況でも、検証と、データを Decimal としてバックエンドに渡す処理が少し興味深いものになります。これは、キーアップ/キーダウン/ブラー/フォーカス イベントなどのさまざまな可能性を通じて実行できることを認識しています。jQueryバリデーターをカスタム検証などで変更します。しかし、これは、さまざまなブラウザーでうまくいかない可能性のある新しい機能や新しい場所がたくさんあることを暗示しているようです。ブラー/キーアップなどのイベントがさまざまなブラウザーでどのように反応するかを扱うのはとても楽しいものでした。

現在のビューは HTML 5 を使用しています。これにより、多くのコーディングなしで検証と入力が容易になります。可能であれば、そのタイプの入力を使用し続けたいと考えています。

ユーザーは、小数を入力できないようにすることもできます (特定のタイプの数量入力の場合)。

また、ソリューションは IE8 と Safari (iPad 用) の両方で動作する必要があります。現在、たまたま iPad のフットプリントに収まるように、すべてのページを 1 つのビューで表示しています。

このタイプのリクエストを処理するためのエレガントでシンプルなソリューションはありますか?

4

1 に答える 1

2

Asp.Net MVC を使用すると、jQuery の控えめな検証を使用して、クロス ブラウザー サポートの面倒な作業を処理できます。

ビュー モデルのプロパティを Remote 属性でデコレートすると、ブラウザーの検証スクリプトに (コードを記述する必要なく) フィールドのコントローラー/アクションを呼び出すように指示できます。次に、そのコントローラー/アクションを作成し、そこで検証を行い (単純に数値の解析を試みることができます)、失敗した場合はメッセージを送り返します。

私がこれを提案する理由は、リモート検証が既に既知の動作するものであり、サーバーに何を書いてもクライアントに影響を与えないという単純な理由によるものです。JavaScript をテストしなくても、バリデーションを好きなだけ行うことができます。

ここにリモート検証の概要があります。心配しないでください。多くのテキストがあり、コードの記述方法により、実際よりも複雑に見えます。

新しいプロジェクトを立ち上げると、15 分以内に完了するはずです。

よろしくお願いします。

編集クライアント側のソリューションを使用たい 場合は、 autoNumericなど、事前に構築され、コミュニティでサポートされているものを試してください。

于 2012-09-07T17:10:47.990 に答える