1

私は jquery-ui-autocomplete プラグインを使用していますが、オートコンプリートではなくオートロードの感覚を与えるために微調整しました。ドロップダウン ビューではなく、入力フィールドの下の div に結果を表示しています。

入力ボックスをクリックしてもdivのデフォルトデータが変更されないように、minlengthを1に設定しました。

しかし、ユーザーが何かを入力し、結果が div に表示されると、ユーザーが入力フィールドをクリアすると、最後の検索結果が表示され続けます。ここでは、ページの読み込み時に表示されるデフォルト データをいくつか表示したいと考えています。これどうやってするの?

コードスニペット:

$("#search-help").autocomplete({
    source: function (request, response) {
        var term = $.ui.autocomplete.escapeRegex(request.term)
        , containsMatcherTitle = new RegExp(term, "i")
        , containsTitle = $.grep(data, function(value) {
            return containsMatcherTitle.test(value.value);
        });

        response((containsTitle.slice(0, 5));
    },
    focus: function( event, ui ) {

        return false;
    },
    minLength: 3,
    select: function(event, ui) {

            return false;
    },
    search: function(event, ui) {
        $("#MY_DIV ul").empty();
    }
}).data( "autocomplete" )._renderItem = function( ul, item ) {

    return $( "<li></li>" )
        .data( "item.autocomplete", item )
        .append( "<a>" + item.value + "</a><span>" + item.desc + "</span>" )
    .appendTo($('#MY_DIV ul'));
};
4

1 に答える 1

0

div に必要な形式は明確ではありませんが、次のようなイベントを作成できます。

$("#search-help").keyup(function( ) {
       if (!this.value) { 
              $('#MY_DIV').val("Default text");
       }
});
于 2012-11-26T18:26:30.197 に答える