2012-06-07 4 views
0

У меня есть поле ввода, в котором используется автозаполнение jQuery. Я хотел бы добавить небольшую функциональность на страницу, чтобы она могла принимать значение при загрузке страницы, а затем выбрать верхний выбор в списке автозаполнения. Я создал jsfiddle, чтобы продемонстрировать, что я имею в виду:Выберите значение автозаполнения при загрузке страницы

http://jsfiddle.net/bwhitney/MQpQG/2/

Или здесь только код:

var myArray = ["apple - a ripe red fruit" 
, "banana - yellow fruit grown in bunches" 
, "orange - the name says it all"]; 

$("input#textbox").autocomplete({ 
    source: myArray 
}); 

$('#clickme').click(function() { 
    // select the #1 autocomplete option for the given text "apple" 
    // ??? 
});​ 

С HTML:

<input type="text" id="textbox" /> 
<input type="button" id="clickme" value="Set the value" /> 

Так, например, если страница, загруженная значением «яблоко», затем должен быть загружен текст «яблоко - спелый красный плод». Отправка всей фразы «яблоко - спелые красные фрукты» не является жизнеспособным вариантом в этом случае.

Я мог бы написать цикл, который выполняет итерации по каждому элементу массива и анализирует первое слово, но я надеюсь, что у jQuery есть лучший способ сделать это, поскольку он уже может получить правильный ответ в верхней части его список.

Редактировать: Чтобы уточнить, я решил, могу ли я заставить его работать, нажав кнопку, я также могу заставить его работать, передав значение, когда страница загружается. Вот почему мой пример использует кнопку вместо загрузки страницы.

ответ

0

Это не так много усилий, чтобы написать его самостоятельно, и как бы вы ни смотрели на него, вам придется перебирать массив, чтобы найти предмет, который вы ищете.

var myWord = "apple"; 

$('#clickme').click(function() { 
    for (item in myArray) { 
     if (myArray[item].indexOf(myWord) == 0) 
      $("#textbox").val(myArray[item]); 
    } 
}); 

Demo

Смежные вопросы