8

オプションのjQueryオートコンプリートドキュメントには次のように書かれていselect( event, ui )ます:

メニューからアイテムが選択されたときにトリガーされます。ui.item は、選択されたアイテムを参照します。select のデフォルトのアクションは、テキスト フィールドの値を選択した項目の値に置き換えることです。

このイベントをキャンセルすると、値が更新されなくなりますが、メニューを閉じることはできなくなります。

では、どうすればイベントをキャンセルできますか? これが私のコードです。

$("#txt1").autocomplete({
    minLength: 1,
    source:  "abc.php",
    select: function(event, ui) 
    {
        event.preventDefault();
        //alert("Select");
        var label= ui.item.label;
        var value= ui.item.value;
        $('#txt1').val(ui.item.label);
    }
});
4

3 に答える 3

10

これは非常に古い質問であることは知っていますが、私は自分で問題に遭遇しました。私にとっての答えはevent.preventDefault();、次のように select メソッドの最後に置くことです。

$("#txt1").autocomplete({
    minLength: 1,
    source:  "abc.php",
    select: function(event, ui) 
    {
        //alert("Select");
        var label= ui.item.label;
        var value= ui.item.value;
        $('#txt1').val(ui.item.label);
        event.preventDefault();  // <---- I moved!
    }
});

私にとってevent.preventDefault();は、関数の先頭に置かれた場合、デフォルトのイベントは発生せず、関数の残りの部分は実行されません。最後に移動すると、期待どおりに機能します。これが他の誰かに役立つことを願っています。

于 2013-07-19T23:34:33.633 に答える
-1

このパラメーターを使用して selectFirst: false

于 2010-09-07T03:32:49.737 に答える