Я пытаюсь написать функцию, которая автоматически подсказывает, что пользователь имеет в виду, когда вводит текст в поле ввода. Прямо сейчас у меня есть весь код автоматического предложения завершен, но в моем javascript я не могу добраться до первого, если в toggleGenusInput независимо от того, что я делаю (это первый, если запрашивает базу данных через php и получает предложения).
Кто-нибудь знает, как я мог изменить свой код так, чтобы, если что-то было введено в поле ввода и не изменялось через 2 секунды, оно было введено первым, если? Спасибо.
Вот мои глобальные сценарии:
var time = new Date();
var timeout = 2000; //query db every 2 seconds of not typing anything
var autoSuggest = true;
var lastQueryTyped = "";
var queryTypedAt = time.getTime(); //what time the last new text was entered
Вот функция, которая связана с методом onfocus входного узла:
function toggleGenusInput(inputNode) {
if(autoSuggest) {
if((time.getTime() - queryTypedAt) >= timeout && inputNode.value == lastQueryTyped) {
//the input has not changed and it's reached the timeout time, requery the db
responseDoc = getXMLFrom("getsimilaritems.php?query=" + inputNode.value);
if(queryFindsSuggestions(responseDoc)) {
cleanUpSuggestions();
appendSuggestions(inputNode, responseDoc);
}
}
else if(inputNode.value != lastQueryTyped) {
//something new was entered so update the time and what was put in
lastQueryTyped = inputNode.value;
queryTypedAt = time.getTime();
}
}
}
А вот HTML-объект, к которому прикреплена функция:
<input type="text" name="autoSuggestInput" onfocus="toggleGenusInput(document.myForm.autoSuggestInput)" />