Domanda

Sto cercando di utilizzare il plugin autocomplete per jQuery (questo http: //docs.jquery .com / Plugins / completamento automatico ). Il mio server restituisce stringa JSON, che sto cercando di processo sul client via di completamento automatico dei plugin di 'parse' e parametri 'formatItem', in questo modo:

$(document).ready(function()
{
    $('.searchBox input.textbox').autocomplete('/DoSearch.aspx',
    {
        mustMatch: false,
        autoFill: true,
        minChars: 1,
        dataType: 'json',
        parse: function(data)
        {
            var array = new Array();
            for (var i = 0; i < data.length; i++)
            {
                array[array.length] = { data: data[i], value: data[i].ID, result: data[i].ID };
            }
            return array;
        },
        formatItem: function(row, i, n)
        {
            return row.ID + ': ' + row.Title;
        }
    });
});

Quando eseguo questo ho un ' sValue.substring non è una funzione ' errore gettato in Firebug. Tuttavia, se mi attengo punti di interruzione su FORMATtutti e la funzione di analisi, vengono colpiti come previsto e contengono dati validi a quanto pare.

Qui è una copia esatta 'n' incollare del testo JSON che viene restituito dal server:

[{"ID":140177,"Title":"Food Handling","Code":"J01.576.423.200"},{"ID":140178,"Title":"Food Handling","Code":"J01.576.423.200"},{"ID":140179,"Title":"Brain Infarction","Code":"C10.228.140.300.301.200"},{"ID":140180,"Title":"Cerebral Hemorrhage","Code":"C10.228.140.300.535.200"},{"ID":140182,"Title":"Insulin","Code":"D06.472.610.575"},{"ID":140183,"Title":"Insulin","Code":"D06.472.610.575"},{"ID":140184,"Title":"Insulin","Code":"D06.472.610.575"},{"ID":140186,"Title":"Insulin","Code":"D06.472.610.575"},{"ID":140188,"Title":"Insulin","Code":"D06.472.610.575"},{"ID":140189,"Title":"Sulfonylurea Compounds","Code":"D02.886.590.795"}]

Si prega di aiuto, ho già cercato di Google e StackOverflow per chiedere aiuto, ma non riesco a trovare nessuno con altro questo errore, evviva!

È stato utile?

Soluzione

Accidenti !!!

Ho trovato la causa del problema. È perché il mio valore ID nella mia stringa JSON è stato digitato come un intero, piuttosto che una stringa ad esempio:. {"ID":140177, invece di {"ID":"140177", e completamento automatico assume tutto sta andando ad essere una stringa

I risolto il problema con le citazioni di avvolgimento attorno al valore ID sul server, o semplicemente convertirlo in un clientside stringa nella funzione 'parse' in questo modo: value: data[i].ID + '', result: data[i].ID + ''

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top