Frage

Ich verwende JQuery AutoComplete und MVC, um eine Dropdown -Liste mit einer Reihe von Spaltennamen zu füllen.

Immer wenn ein Benutzer den Wert einer Dropdown -Kiste in meinem Formular ändert, stelle ich eine Anfrage an meinen Controller, um eine neue Liste von Spalten zurückzugeben (als Array, eingewickelt in ein JSON -Ergebnis), in dem meine automatischen Vervollständigungskästchen besiedelt werden.

Mein Problem ist, dass die Autocomplete nicht zwischen Wörtern unterscheidet und stattdessen darauf besteht, es durch C, H, A, R, A, C, T, E, R zu machen. Es ist sehr nervig. Hier ist der Code:

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
       });
  });

});

Das Get gibt diese Antwort zurück:

"Memo", "Balance"

Butmy AutoComplete zeigt jeweils einzelne Buchstaben anstelle von zwei: Memo, Balance. Ich fand dies richtig, da der Beispielcode eine ähnliche Möglichkeit zeigt, das Ergebnis zurückzugeben.

Irgendwelche Ideen?

Vielen Dank im Voraus.

War es hilfreich?

Lösung

Möglicherweise zeigen Sie ein Beispiel für das, was Sie wollen? Ich folge nicht hundert Prozent.

Meine Autokonfertigung ist nur der Benutzer, der in ein Textfeld eingeben wird. Er befasst sich mit den Buchstaben, die eingegeben werden, und gibt mit diesem Ergebnis mögliche Wörter zurück.

So wie ich es mache, ist Folgendes:

// 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);
}

Ich bin mir nicht sicher, ob Ihnen das überhaupt hilft.

Andere Tipps

Mir ist klar, dass dies ein verrücktes Gespräch sein mag, und es ist auch nicht eine Antwort, aber da es in jedem Index der Antwort über die Elemente zu iterieren scheint, haben Sie versucht, Ihre Antwort in ein anderes Array wie zu wickeln. [["Memo","Balance"]]?

Nun, Sie sind an das OnChange () -Event bindend, das Brief per Brief wäre. Ich bin auf etwas Ähnliches gestoßen und wollte den gesamten Wert. Ich habe dies behandelt, indem ich die Funktion von Parse () überschrieben und mein XML -Parser/-format angibt. Dann habe ich die Funktion result () übergeordnet, um die Zeile [] -Daten zu analysieren, die ich in der Funktion parse () zurückgelegt habe.

Wie verwenden Sie Post mit JQuery AutoCompleter?

Grundsätzlich habe ich immer Zeile [] mit Daten und Namen aus der Auswahl (du kannst auch JSON machen).

Sie müssen auch die Funktion formateItem () überschreiben, um Ihr neues Zeile [] -Array zu verarbeiten.

Es gibt mehrere JQuery -Autokolmen. Es würde helfen, wenn Sie erwähnen würden, welche Sie verwenden. Zum Beispiel sieht es nicht so aus wie http://docs.jquery.com/plugins/autokomplete/setoptions sind die Setoptionen, die Sie verwenden?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top