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" />

因此,例如,如果页面加载了值“apple”,则应加载文本“apple - a 成熟的红色水果”。在这种情况下,发送整个短语“苹果 - 成熟的红色水果”不是一个可行的选择。

我可以编写一个循环来遍历数组中的每个项目并解析出第一个单词,但我希望 jQuery 有更好的方法来做到这一点,因为它已经可以在其列表的顶部获得正确的答案。

编辑:为了澄清,我想如果我可以通过按下按钮让它工作,我也可以通过在页面加载时传入一个值来让它工作。这就是为什么我的示例使用按钮而不是页面加载的原因。

4

1 回答 1

0

自己编写并不费力,而且无论您如何看待它,您都必须遍历数组才能找到您要查找的项目。

var myWord = "apple";

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

演示

于 2012-06-07T23:42:11.703 回答