1

アイテムの結果にカーソルを合わせたりフォーカスしたりするときに、入力にアイテムラベルを表示するデフォルトの動作をオーバーライドするにはどうすればよいですか?

動作しない例:

JavaScript:

$('#ac').autocomplete({
    source : ["hello", "how", "do", "you", "do"],
    focus: function(event, ui){
         console.log("print")
         $(this).val('my custom label to show in input');    
    }
})

HTML:

<input type="text" id="ac"/>

http://jsfiddle.net/34fSg/14/

4

1 に答える 1

4

入力の値をフォーカスされたアイテムの値に置き換えるという、イベントのデフォルトのアクションを防止します。

$('#ac').autocomplete({
    source : ["hello", "how", "do", "you", "do"],
    focus: function(event, ui){
         this.value = 'my custom label to show in input';
         event.preventDefault(); // <-----
    }
})

例: http: //jsfiddle.net/4jJyb/

于 2012-06-21T18:26:12.447 に答える