Wenn Sie eine ganze Wörterbuch automatisch zu vervollständigen will, dies zu langsam ist. Aber wenn Sie nur einige Wörter (wie "grün", "rot", etc.) automatisch vervollständigen wollen, sollte dies tun.
In Ihrer HMTL benötigen Sie einen Eingang und ein Div. Die Eingabe ist für die Eingabe und das div präsentiert die Vorschläge.
<input id="input" oninput="findSuggestions('input', 'suggestions')">
<div id="suggestions"></div>
Wenn Sie also eingeben, wird eine Funktion aufgerufen. Diese Funktion wird ein Array mit allen darin enthaltenen Vorschlägen durchlaufen.
var arySuggestions = ["Alarm", "Already" , "Ballon"] // This is where all you suggestions go
function findSuggestions(strInputId, strSuggestionsDivId) {
var objInput = document.getElementById(strInputId)
var strInput = objInput.value // get the current text
var objSuggestionsDiv = document.getElementById(strSuggestionsDivId)
if (strInput.length > 0) {
objSuggestionsDiv.innerHTML = ""; // empty the suggestion div, just in case
var objList = document.createElement("ul");
for (var i = 0; i < arySuggestions.length; i++) {
var word = arySuggestions[i]
var wordPart = word.substring(0,strInput.length)
if (word.length > strInput.length && wordPart === strInput) { // check if the words are matching
// if they do create a list entry
var objListEntity = document.createElement("li");
objListEntity.setAttribute("onclick", "complete('" + word + "', '" + strInputId + "', '" + strSuggestionsDivId + "');");
objListEntity.innerHTML = word;
objList.appendChild(objListEntity);
}
}
// show the suggestionList
objSuggestionsDiv.appendChild(objList);
} else {
objSuggestionsDiv.innerHTML = ""; // empty the suggestion div
}
}
Und es gibt eine zweite Funktion. So dass, wenn Sie auf den Vorschlag klicken, wird es sie in füllen:
function complete(strComplete, strInputId, strSuggestionsDivId) {
document.getElementById(strInputId).value = strComplete;
document.getElementById(strSuggestionsDivId).innerHTML = ""; // empty the suggestion div
}
Wenn Sie die Vorschläge folgen Sie den Cursor wollen Sie wahrscheinlich einige CSS benötigen.
Hoffe, das hilft
Ist es möglich ... ja. Ist es eine zu weite Frage für diese Seite ... auch ja. Suchen Sie im Web nach Skripten, die dies mit Begriffen wie * "Autocomplete" * oder * "typeahead" * – charlietfl
können Sie Bibliotheken von Drittanbietern verwenden, oder Sie müssen es selbst tun? –