Facebook のステータス メッセージ テキスト ボックスのように機能する JQuery (または他のフレームワーク) プラグインを探しています。
何をすべきか:
AutoSuggest をトリガーせずにテキストを自由に入力できるようにする (通常の AutoSuggest ボックスとは対照的に)
「@」などの特定の文字によってトリガーされたときに、AutoSuggest を表示します。
実際、それは FaceBook のものとまったく同じように動作するはずです... :)
Facebook のステータス メッセージ テキスト ボックスのように機能する JQuery (または他のフレームワーク) プラグインを探しています。
何をすべきか:
AutoSuggest をトリガーせずにテキストを自由に入力できるようにする (通常の AutoSuggest ボックスとは対照的に)
「@」などの特定の文字によってトリガーされたときに、AutoSuggest を表示します。
実際、それは FaceBook のものとまったく同じように動作するはずです... :)
私は次のようなものを使用します: http://www.codeproject.com/KB/aspnet/Search_SuggestTextBox.aspx
このライブラリの良いところは、テキスト入力のonkeyupによってトリガーされることです。これは、提供された JS 関数を変更して、正しいキー シーケンスを確認できることを意味します。
多分このようなもの:
var shiftDown=false; //Track if SHIFT was the last key pressed.
function searchSuggest(e)
{
var key = window.event ? e.keyCode : e.which;
if (key==40 || key==38)
{
shiftDown=false;
scrolldiv(key);
}
else if (key == 16) // SHIFT WAS PRESSED
{
shiftDown=true;
}
else if (key == 50 && shiftDown) // 2 WAS PRESSED
{
if (searchReq.readyState == 4 || searchReq.readyState == 0)
{
var str = escape(document.getElementById('txtSearch').value);
strOriginal=str;
searchReq.open("GET", 'Result.aspx?search=' + str, true);
searchReq.onreadystatechange = handleSearchSuggest;
searchReq.send(null);
shiftDown=false;
}
}
else
{
shiftDown=false;
}
}
うまくいけば、あなた(OP)はDutchie432の回答を利用して、満足のいくソリューションを作成できました。しかし、あなた、またはたまたまこれに出くわした他の誰かが、堅牢ですぐに使用できるソリューションを探していないか、探しているのであれば...
... Mentionatorは、まさにあなたが探しているもののようです。これは、クライアントがテキスト領域内の事前定義されたエンティティへの強調表示された参照 (「メンション」) を作成できるようにする jQuery プラグインです。それはここでこの男によって管理されています:)。
同様のプラグインとは異なり、Mentionator は次のオプションを提供します。これらのオプションは、要求に応じて、Facebook のタグ付け機能とまったく同じように機能できるようにします。
doesRecognizeDelimitedSubstrings:
A boolean which, if defined as true, will allow the external value
of a mention, herein called "mentionExternalValue", to sustain
modifications so long as the result of each such modification
is in mentionExternalValue.split(delimValue)
delimValue:
A string, or regular expression representing the set of strings,
that, given doesRecognizeDelimitedSubstrings === true, delimit
mentionExternalValue substrings that can also serve as external
value of the mention if yielded by a modification of
mentionExternalValue