0

申し訳ありませんが、同様の投稿がコミュニティに既にありますが、奇妙に感じています。正常に動作しますが、他のビューに影響を与え、他のビューページにダイアログボックスを入力できません..

このように function() でラップして修正しようとしました

$('#_auto').autocomplete(function(){

しかし、これで _auto テキストフィールドで jason 値を取得できず、次の行で予期しないトークン エラーが発生します。誰でもこれを解決するのを手伝ってもらえますか。

source: function(request,response){

これは私のコードです:

$(function () {
    $('#_auto').autocomplete({
        selectFist: true,
        minLength: 2,
        source: function (request, response) {
            var sval = $('#_auto').val();
            //alert(sval);
            $.ajax({
                url: BASE_URL + '/controller/search/',
                type: 'POST',
                data: {
                    'term': sval,
                },
                dataType: 'json',
                success: function (data) {
                    console.log(data);
                    var dta = [];
                    orgdetails = [];
                    //response(data.d);
                    for (var i in data) {
                        dta.push(data[i].name);
                        orgdetails[data[i].name] = data[i].id;
                    }
                    response(dta); //response(dta);
                },
                error: function (result) {}
            }); //ajax
        }
    }).focus(function () {
        $(this).trigger('keydown.autocomplete');
    });
});

どうもありがとう

4

1 に答える 1

1

forループは

var dta = $.map(data, function(v, i){
    orgdetails[v.name] = v.id;
    return {
        label: v.name,
        id: v.name
    };
});

フィドル

別の観察では、現在の検索用語を取得できrequest.termます$('#_auto').val()

完全なコード:

$('#_auto').autocomplete({
    selectFist: true,
    minLength: 2,
    source: function (request, response) {
        $.ajax({
            url: BASE_URL + '/controller/search/',
            type: 'POST',
            data: {
                'term': request.term,
            },
            dataType: 'json',
            success: function (data) {
                console.log(data);
                orgdetails = {};

                var dta = $.map(data, function(v, i){
                    orgdetails[v.name] = v.id;
                    return {
                        label: v.name,
                        id: v.name
                    };
                });
                response(dta); //response(dta);
            },
            error: function (result) {}
        }); //ajax
    }
}).focus(function () {
    $(this).trigger('keydown.autocomplete');
});
于 2013-01-24T15:26:10.170 に答える