3

https://github.com/aehlke/tag-it/downloadsの tag-it プラグインを使用します。新しいタグの追加を無効にする方法は?

$(document).ready(function () {
                $("#Tags").tagit({
                    singleField: true,
                    singleFieldNode: $('#mySingleField'),
                     //  onlyAvailableTags : true,
                     allowNewTags: false,
                    tagSource: [@Html.Raw(ViewBag.AvailableTags)]
                });
            });

onlyAvailableTags : trueallowNewTags: falseオプションを使用しようとしましたが、効果がありません。

4

3 に答える 3

1

これは、最新バージョンの tag-it に対して行ったことです。

var tags_list = ['tag1', 'tag2, 'tag3];

$("input[name='subject-tags']").tagit({
    availableTags : tags_list,
    beforeTagAdded : function(event, ui) {
        if(tags_list.indexOf(ui.tagLabel) == -1){
            return false;
        }
    }
});

実装してきれいにしようとしました

$("input[name='subject-tags']").tagit({
    availableTags : ['tag1', 'tag2, 'tag3],
    beforeTagAdded : function(event, ui) {
        if(this.availableTags.indexOf(ui.tagLabel) == -1){
            return false;
        }
    }
});

ただしthis.availableTags、配列は返しません (return : undefined)。私は JS 初心者なので、プロパティへのアクセス方法に問題があるはずです。

于 2015-05-28T01:17:03.220 に答える
1

コメントアウトすると、次のことがわかりました。

 // Autocomplete will create its own tag from a selection and close automatically.
 if (!that.tagInput.data('autocomplete-open')) {
    that.createTag(that._cleanedInput());
 }

と:

// Create a tag when the element loses focus.
// If autocomplete is enabled and suggestion was clicked, don't add it.
if (!that.tagInput.data('autocomplete-open')) {
     that.createTag(that._cleanedInput());
}

この機能を削除します。おそらく最もクリーンな方法ではありませんが、機能します。

if(){ }ループをコメントアウトするだけです。

于 2013-06-28T13:04:24.637 に答える
0

あなたは「しかし効果はありません」と言うので@Html.Raw(ViewBag.AvailableTags)、javascript構文を壊す出力を生成すると思います。タグは引用符で囲む必要があります。引用符で囲まないと、変数として扱われます。

誤った出力:

tagSource: [my-tag, another-tag]

サーバー側では、次のようなものがあると思いますIEnumerable<string>

ViewBag.AvailableTags = new List<string>
{
    "my-tag",
    "another-tag",
};

次に、あなたの.cshtml

tagSource: ["@string.Join("\", \"", ViewBag.AvailableTags)"]

これにより、正しい出力が生成されます。

tagSource: ["my-tag", "another-tag"]

それが私が最初に試すことです。

于 2012-04-03T14:51:38.463 に答える