フリーテキストが許可された複数行のテキストボックスが必要ですが、入力文字「@@」を開始する
と、使用可能なタグを含むオートコンプリートボックスが表示され、既存のタグと「@@」文字からタグを選択できるようになりますタグ名に含まれてはなりません。
現在、jquery UIの tag-it プラグインで遊んでいますが、フリー テキストを許可する方法がわかりません。「@@」入力時にオートコンプリート ボックスのみを表示します。通常の入力の代わりにテキストエリアを使用する方法。
また、@@ を入力し、自由なテキストの入力を許可しない場合は、強制的にリストから選択するようにしたいと思います (最初に利用可能な選択が適切です)
Javascript:
$(document).ready(function() {
//The demo tag array
var availableTags = [
{value: 1, label: 'tag1'},
{value: 2, label: 'tag2'},
{value: 3, label: 'tag3'}];
//The text input
var input = $("input#text");
//The tagit list
var instance = $("<ul class=\"tags\"></ul>");
//Store the current tags
//Note: the tags here can be split by any of the trigger keys
// as tagit will split on the trigger keys anything passed
var currentTags = input.val();
//Hide the input and append tagit to the dom
input.hide().after(instance);
//Initialize tagit
instance.tagit({
tagSource:availableTags,
tagsChanged:function () {
//Get the tags
var tags = instance.tagit('tags');
var tagString = [];
//Pull out only value
for (var i in tags){
tagString.push(tags[i].value);
}
//Put the tags into the input, joint by a ','
input.val(tagString.join(','));
}
});
//Add pre-loaded tags to tagit
instance.tagit('add', currentTags);
});
html:
<p>This example shows how to use Tagit on an input!</p>
<input type="text" id="text" name="tags" value="one,two,three"/>
ここでのテスト: http://jsfiddle.net/hailwood/u8zj5/