0

Select2 jqueryプラグインを使用して、ASP.NETMVCサイトの投稿のタグを追加/作成しています。私が使用する機能は、次のような「リモートデータの読み込み」と「タグ付けのサポート」です。

        <script type="text/javascript">

        function tagResultList(tag) {
            var counter = 'ny tagg';

            var markup = "<table class='movie-result'><tr>";
            markup += "<td class='movie-info'><div class='movie-title'>" + tag.text

            if (typeof tag.count != 'undefined') {
                counter = tag.count;
            }

            markup += "(" + counter + ")</div>";
            markup += "</td></tr></table>"
            return markup;
        }

        function tagResultSelectionName(tag) {
            return tag.text;
        }


        $("#txtTagBox").select2({
            multiple: true,
            createSearchChoice:
                function (term, data) {
                    if ($(data).filter(function () { return this.text.localeCompare(term) === 0; }).length === 0) {
                        return { id: 0, text: term };
                    }
                },
            placeholder: "Sök efter en tagg",
            minimumInputLength: 3,
            maximumInputLength: 30,
            maximumSelectionSize: 5,
            ajax: { // instead of writing the function to execute the request we use Select2's convenient helper
                url: _tagsUrl,
                dataType: 'json',
                quietMillis: 100,
                data: function (term, page) {
                    return {
                        q: term, // search term
                        page: page
                    };
                },
                results: function (data, page) { // parse the results into the format expected by Select2.
                    // since we are using custom formatting functions we do not need to alter remote JSON data
                    return { results: data.Tags, more: data.MorePages };
                }
            },
            formatResult: tagResultList, // omitted for brevity, see the source of this page
            formatSelection: tagResultSelectionName,  // omitted for brevity, see the source of this page
            dropdownCssClass: "bigdrop" // apply css that makes the dropdown taller
        });
    </script>

新しいタグを入力して選択する(新しいタグを作成する)ことはできますが、問題は、テキストボックスを送信するとID 0がサーバーに転送され、作成されたタグの名前を知る方法がないことです。

では、IDの代わりに文字列をサービスに送信するにはどうすればよいですか?または、既存のIDと作成された文字列のような混合モードがありますか?

よろしくお願いします

4

1 に答える 1

0

試す

 function (term, page) {
                return {
                    q: term, // search term
                    page: page
                    ,newtag : 'created tag' //replace by var or jquery chain that'll return the string 
                }

get 配列で _tagsurl にインデックス newtag で送信されます

于 2013-02-09T10:21:48.810 に答える