2
$('.txtAlignLeft').live('focus.autocomplete', function(){
var $textBox = $(this);
var curId = $textBox.attr("id");
var vtxtmtlCode = $('#txtmtlCode').val();
pmidvalue = (curId).replace( /(^.+\D)(\d+)($)/i,'$2');

$(this).removeData('events').autocomplete(gMasterAjaxPath+"filename.php?vValid=3",{
    //delay:10,
    minChars:1,
    //cacheLength:20,
    //mustMatch:true,
    matchContains: true,
    mustMatch: false,
    //selectFirst: false,
    extraParams: {
    txtmtlCode: function() {return $('#txtmtlCode').val()},
},
    formatItem: function(data, i, n, value) {
        return value.split("#-#")[0]
    },
    formatResult: function(data, value) {
        return(value.split("#-#")[0]);
    }

}).result(function(event, item, data) {
    // Result updation

    });         
});

入力ボックスに 1 文字入力すると、データベース ヒットが 10 ~ 20 回以上 (コンソールで) 発生します。また、他のタブまたはテキストボックスをクリックすると、データベースが連続してヒットします..この問題を解決するにはどうすればよいですか..コードに間違いはありますか

4

1 に答える 1

1

あなたは答えをコメントアウトしました...

遅延を組み合わせて使用​​します。これは MS であるため、1000 = 1 秒です。

そして、minchar を使用します。つまり、2 文字または 3 文字が入力された場合にのみ検索されます。

于 2012-05-21T12:13:27.690 に答える