0

私の実際の目標をより明確にするために編集されました...

これが多くの努力なしで可能かどうかはわかりません...

ユーザーがコメントを入力するテキスト フィールドがあります。名前の先頭に @ 記号を付けて、ユーザーのタグ付けを有効にしたいと考えています。テキスト フィールドをポーリングし、@ 記号が入力されるまで待機し、正規表現を使用して @ 記号の後のテキストを取得し、一致するユーザーのリストを返す jQuery 関数をまとめました。これはすべてうまくいっています。

私の問題は、ユーザーが結果の 1 つを選択したときに発生します。テキストフィールドの「@username」を何らかのフォーマットされたテキストに置き換えたいのです。目標は、ユーザー名がタグとして適切に処理されたことをユーザーが認識できるように、テキスト フィールド内のユーザー名を視覚的に区別する方法を提供することです。テキスト フィールドで何らかの書式設定を使用する方法はありますか? または、これをサポートするために使用できる別のフォーム要素はありますか?

ありがとう

更新: 検索すると、次の質問が見つかりました: jQuery textbox and html

その作成者には、div を使用してリッチ HTML を表示し、非表示の入力を使用してユーザーからテキストを取得することをお勧めします。AJAX を使用して、テキスト フィールドのすべてのキーストロークを取得し、コンテンツで div を更新できると思いますが、これは多くのオーバーヘッドですか? この状況で意味のある他の解決策はありますか?

4

3 に答える 3

0

ジム、これをコメントとして残しておけばよかったのですが、まだできません。私は以前に似たようなことをしなければならず、これを行うために軽量の wysiwyg エディターを使用しました。あなたの状況ではやり過ぎかもしれませんが、調べる必要があるかもしれません。

于 2012-08-09T19:54:25.287 に答える
0

あなたの質問に対する更新は 100% 正しいです。

キーストロークをキャプチャすることは間違いなく正しいアプローチですが、実装方法によってオーバーヘッドが決まります。

@ 記号の後に X 個の文字とスペースが続くまで待つことをお勧めします。スペースを読み取ったら、AJAX 要求を送信できます。

ユーザーが 100 万個の @ タグを入力していない限り、それが大量のリクエストであるとは想像できません。

一部のアプリケーションはサーバーを 1 秒間に数回ポーリングすることに注意してください。これははるかに少ないものです。

于 2012-08-09T19:56:42.930 に答える
-1

このようにしてみてください。

var text = '<a href="users/username">username</a>'
var o = $(text);
于 2012-08-09T19:45:07.703 に答える