1

それが理にかなっていることを願っています。jQuery UI の自動選択機能を使用するテキスト入力があります。ユーザーが選択すると、必要に応じて入力が自動入力されます。私の問題は、ユーザーが何かを入力したが、ドロップダウンから選択しない場合です。これにより、フォームの送信時にテキスト入力値がリストに存在しないものになります。「変更」イベントでアクション (テキスト入力値をクリア) を実行する方法があるかどうかを知りたいのですが、「選択」イベントはそのままにしておきます。

4

2 に答える 2

1

私があなたを正しく理解していれば、イベント ハンドラーuiに渡されるパラメーターを活用できるはずです。change

$("#auto").autocomplete({
    /* options */
    change: function (event, ui) {
        if (!ui.item) {
            this.value = '';
        }
    }
});

ui.itemundefinedオートコンプリート候補リストから何も選択されていない場合は になります。

例: http://jsfiddle.net/ZBzpF/

于 2012-08-29T02:17:19.437 に答える
0

change イベント ハンドラー内で、現在の値がソースにあるかどうかを確認し、そうでない場合はリセットします。何かのようなもの:

var sourceArray = ["a", "b", "c"],
$autocomplete = $('#autocomplete');
$autocomplete.autocomplete({
    source: ,
    change: function(e, ui) {
        if ($.inArray($autocomplete.val(), sourceArray) === -1) {
            //change the value
        }
    })
}
于 2012-08-28T22:29:27.863 に答える