4

以下のような select2 関数があります。

    function select2AutocompleteManyToManyField(field, request_url){
        var map = {};
        $("#"+field).select2({
            multiple: true,
            placeholder: field,
            minimumInputLength: 3,
            ajax: { // instead of writing the function to execute the request we use Select2's convenient helper

                url: request_url,
                dataType: 'json',
                data: function (term) {
                    return {
                        query: term
                    };
                },
            results: function (data) { // parse the results into the format expected by Select2.
                var objects = [];
                $.each(data,function(i,obj){
                    map[obj.translations__name] = obj;
                    objects.push({
                        "text": obj.translations__name,
                        'id': map[obj.translations__name].id

                    });
                });
                return {results: objects};
              }
            }
        });
}

選択したフィールド ID で別の非表示フィールドの値を更新したいと考えています。これを行う方法はありますか?

4

2 に答える 2

3

私はこれを経験しましたが、解決策を見つけることができませんでした。それから私はあなたのsunbmitクリックで以下のように作業しました

 $("#mysubmit").click(function () {
            $('#Hiddenfields').val($('#divforselect').val());
     });
于 2013-05-07T11:28:55.317 に答える
2

これは私がどこかで見た方法で、正常に適用されました:

            /* bind select2 */
            var select2 = $( '#city' ).select2({
                initSelection : function( element, callback ) {
                    var data = { id: element.val(), text: element.val() };
                    callback(data);
                },
                minimumInputLength: 2,
                ajax: {
                    url: "/city",
                    dataType: 'jsonp',
                    data: function( term, page ){
                            return {
                                q: term,
                                page_limit: 10
                        };
                    },
                    results: function( data, page ){
                        return { results: data.content.result };
                    }
                },
            }).data( 'select2' );
            select2.onSelect = ( function( fn ){
                return function( data, options ){
                    $( '#city_id' ).val( data.id );
                    return fn.apply( this, arguments )
                };
            })( select2.onSelect );
于 2013-05-07T11:21:53.213 に答える