1

JQuery プラグインオートコンプリートを一種のデータセット チューザーとして使用します。ユーザーがオートコンプリート ルックアップから値を選択すると、一致するデータセットがデータベースに照会されます。ユーザーが新しい値を入力すると、ユーザーは新しいデータセットを入力できます。ユーザーがオートコンプリート ルックアップから選択するのではなく、既存の値を入力すると、問題が発生します。これが完了すると、オートコンプリート.result()メソッドは呼び出されず、データセットは取得されません。これを修正する.blur(function(){$(this).search();});ために、入力要素に a を追加しました。これにより、元の問題が修正されました。

.result()、ルックアップからの選択とぼかしで発生する問題があります。.result()ルックアップまたはぼかしからの選択で発火したいと思います。どうすればそれを実現できますか?

これが私のコードです:

$('#groupset').autocomplete('ajax/php/leeruns.php');
$('#groupset').result(
    function(event, data, formatted) {
        if(data){
            $('#groupsetdesc').val(formatted);
            groups.load(data[1]); //retrieve matching dataset
        } else {
            $('#groupsetdesc').val('');
        }
    }
).blur(function(){$(this).search();});
4

1 に答える 1

1

データの現在の値を previous という名前の永続変数に格納し、データセットが同じ場合はロードしないことができます。

var loaded_previous;
$('#groupset').autocomplete('ajax/php/leeruns.php');
$('#groupset').result(
function(event, data, formatted) {
    if(data && data[1] != loaded_previous){
        loaded_previous = data[1];
        $('#groupsetdesc').val(formatted);
        groups.load(data[1]); //retrieve matching dataset
    } else {
        $('#groupsetdesc').val('');
    }
}
).blur(function(){$(this).search();});
于 2010-05-13T22:29:00.507 に答える