2010-12-29 6 views
1

私は、行単位でいくつかの正規表現パターンに基づいてテキスト領域のテキストを検証することを検討しています。これに最も近いアプローチは何ですか?私が考えてきた方法は、.change()イベントを使用し、改行文字でテキストを分割することです。次に、各行をループして妥当性をチェックします。このアプローチはかなり無駄に思えますが、より効率的な方法がありますか?行単位で検証する

+0

私は、JavaScriptの反応拡張、特にスロットル機能を見ています。ここにはブログの投稿がありますhttp://bit.ly/goSwJw 私はこれを自分で使ったことがないので、私はこれを投稿しています答えの代わりにコメントとして。がんばろう! – eSniff

+0

何をチェックしていますか?無効な文字ですか?行に分割する理由はありません。 – ken

+0

私はそれを行に分割する必要があります。なぜなら、質問に掲示されるように、それはテキスト領域であり、各行は完全に別々の入力を表し、残りの部分とは関係しないからです。 – Radu

答えて

1

おそらくASP.Netは使用していませんが、データアノテーションを使用してそのルールを作成し、対応するプロパティのテキストエリアに配置することができます。これと同じ正確で集中管理されたルールは、クライアント側とサーバー側で機能します。

場合によってはデータ注釈を使用することができます。それ以外の場合は、changeイベントを使用して説明したメソッドを使用できます。また、ぼかしメソッドを使用することもできます。変更を使用した場合でも、挿入された最後のキーが入力された場合のみ、検証テストを実行します。こうすることで、少なくともクライアントリソースを節約することができます。

+0

私はasp.netを使用しており、すでにサーバー側の検証を行っていますが、ユーザーに即時のフィードバックを提示したいと思います。 – Radu

+0

次に、クライアント側の検証が有効な場合、フィールドのフォーカスが失われたときの入力が最初にテストされます。ユーザーが書いている間はテストを続けたいと思うようです。私が正しく理解していれば、テキストエリアの変更イベントを引き起こすことができると思います。テキストを変更するたびに検証テストを行うために、Webで$( "#textarea")。change()などのものを検索してください。 –

+0

私は上記が完全に動作すると思います。とにかく、別のオプションがあります。新しいアクションを作成することができます。これは、その検証規則を持つtextareaプロパティのみを持つモデルを受け入れます。最後の2〜2秒で何も入力していなければ、現在のテキストを検証するようサーバーに依頼することができます。あなたが最初のものに問題があるなら、私は最初が一番良いと信じていますが、確かにこれを行うことができます。あなたに最も適したものを選んでください。 –

関連する問題