Pergunta

Estou usando o JQuery AutoComplete e o MVC para preencher uma lista suspensa com um monte de nomes de colunas.

Sempre que um usuário altera o valor de uma caixa suspensa no meu formulário, faço uma solicitação ao meu controlador para retornar uma nova lista de colunas (como uma matriz, embrulhada em um resultado JSON) que preencherá minhas caixas de preenchimento automático.

Meu problema é que o preenchimento automático não faz uma distinção entre as palavras e e, em vez disso, insiste em fazê -lo personagem por c, h, a, r, a, c, t, e, r. É muito irritante. Aqui está o código:

function PopulateColumnsList(list) { 
    $(".columnDropdown").setOptions({ data: list });
}

$(document).ready(function() {
    $(".columnDropdown").autocomplete("", {
        width: 320,
        max: 14,
        highlight: false,
        minChars: 0,
        scroll: true,
        scrollHeight: 300
    });

    $("#Data").change(function() {
        $.ajax({
            url: "/Home/ColumnNamesForDataSelect",
           type: "GET",
           data: { DataSelectID: parseInt($('#Data').val()) },
            success: PopulateColumnsList
       });
  });

});

O Get Returns esta resposta:

"Memorando", "equilíbrio"

But My My AutoComlete mostrará cada um deles como letras únicas, em vez de duas: memorando, equilíbrio. Eu pensei que isso estava correto, pois o código de exemplo mostra uma maneira semelhante de retornar o resultado.

Alguma ideia?

Desde já, obrigado.

Foi útil?

Solução

Possível para você mostrar um exemplo do que deseja? Não estou seguindo cem por cento.

Meu preenchimento automático é apenas o usuário começa a digitar em uma caixa de texto e analisa as letras que estão sendo digitadas e retorna as possíveis palavras com esse resultado.

A maneira como estou fazendo é isso:

// JavaScript file
$("#id").autocomplete("AutoFill", { delay: 1 });


// view
public ContentResult AutoFill(string q)
{
    var result = // go to database and grab all words that Start with whatever is in q.

    string sendBack = null;
    for (int i = 0; i < result.Count; i++)
    {
        sendBack += result[i] + Environment.NewLine;
    }
    return Content(sendBack);
}

Não tenho certeza se isso o ajuda.

Outras dicas

Sei que isso pode ser uma conversa maluca, nem é uma resposta, mas como parece estar iterando os itens em cada subscrito da resposta, você tentou envolver sua resposta em outra matriz como, [["Memo","Balance"]]?

Bem, você é vinculativo ao evento OnChange (), que seria carta por carta. Eu encontrei algo semelhante e queria todo o valor. Eu lidei com isso substituindo a função parse () e especificando meu analisador/formato XML, depois superei a função Result () para analisar os dados da linha [] que eu defino na função parse ().

Como você usa a postagem com o JQuery AutoComplete?

Então, basicamente, eu sempre tenho linha [] com dados e nome da seleção (você também pode fazer o JSON).

E você também precisará substituir a função formatItem () para lidar com sua nova matriz de linha [].

Existem vários autocompletadores de jQuery por aí. Ajudaria se você mencionasse qual você está usando. Por exemplo, não parece http://docs.jquery.com/plugins/autocomplete/SsetOptions As setoções que você está usando?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top