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-熟した赤い果物」というテキストをロードする必要があります。この場合、「リンゴ-熟した赤い果実」というフレーズ全体を送信することは実行可能なオプションではありません。

配列内の各項目を反復処理して最初の単語を解析するループを作成することもできますが、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 に答える