2

keyup()現在、イベントに問題があります。

.change()イベントでオートコンプリートを使用すると、すべて正常に動作します。しかし、オートコンプリートの提案は、通常、フィールドのフォーカスを失ったときにのみ表示されると思います.

問題は、.keyup()イベントを使用すると提案が表示されますが、提案されたリストの項目をクリックすると、項目がテキストフィールドに配置されないことです。

change()候補をフィールドに設定する関数とは異なります。

 jQuery(document).ready(function() {  
        jQuery("#customfield_10000").keyup(function(e){
                            teller = teller + 1;
                            if(teller % 2 == 0){
                            if(e.keyCode == 13)
                            {
                                jQuery("#customfield_10001").focus();
                            }    

            crmAccount = jQuery(this).val();
            lijstAccounts.length = 0;

                    jQuery.ajax({
                        url: "http://"+serverIp+"/getAllAccountNamesJsonP?jsonp_callback=?",
                        dataType: 'jsonp',
                        jsonp: "jsonp_callback",
                        data: {
                            featureClass: "P",
                            style: "full",
                            maxRows: 12,
                            name_startsWith: jQuery(this).val(),
                                                            crm_acc: crmAccount,
                            },
                            success: function( data ) {
                                lijstAccounts.length = 0;
                                 jQuery.map( data, function( item ) {
                                                            lijstAccounts.push(item);
                                                            jQuery('#customfield_10000').trigger(
                                                                'setSuggestions',
                                                            { result : textext.itemManager().filter(lijstAccounts, query)

                                                                                                                            }
                                                            );              
                                    return {
                                        label: item.label,
                                        value: item.value    
                                    }
                                });
                            }
                        }); 
                            }
        });


             jQuery('#customfield_10000').textext({
                plugins : 'autocomplete'
                }).bind('getSuggestions', function(e, data)
                    {

                        textext = jQuery(e.target).textext()[0],
                        query = (data ? data.query : '') || '';

                    });
});
4

2 に答える 2

4

両方をバインドしてみませんか?jQuery のバージョンに応じて:

jQuery 1.7+

$(selector).on('keyup change', function() {});

その他

$(selector).bind('keyup change', function() {});
于 2012-05-21T07:24:50.330 に答える
1

今日、実際に同様の問題がありました。セレクターを入力フィールドのIDから次のように名前に参照するように変更しました。

$("input:text[name=search-box]").keyup(function(){
    //Code
});

奇妙なことに、変更を行った後、すべてが正常に機能しました。これがあなたにとってもうまくいくことを願っています。

于 2012-05-21T10:13:02.277 に答える