でデータを取得するときにJavascriptをオートコンプリートライブラリに問題がある:私はEnterキーを押すことにより、オートコンプリートのドロップダウンを使用しようとするとは、私は次のコードでの問題に実行しているよgetJSON
var setupSearch = {
searchSuggest: function(field) {
$.getJSON('/get-all-journals', {'url':'on'}, function(data) {
var SHCount = Number($.cookie('SHCount'));
var SHArray = new Array();
for (i=1; i <= SHCount; i++) {
SHArray.push($.cookie('SH'+i));
}
$(field).ddautocomplete(removeDuplicate(SHArray), data.response.docs, {
matchContains: true,
max: 5,
cacheLength: 5000,
selectFirst: false,
scroll: false,
formatResult: function(str) { return str; },
formatItem2: function(item) {
return item.journal_display_name;
},
formatMatch2: function(item) {
return item.journal_display_name;
},
formatResult2: function(item) {
return item.journal_display_name;
}
});
});
},
searchForm: function(form) {
var field = form.find('textarea');
// Setup query field for default text behavior
// setupField(field);
setupSearch.searchSuggest(field);
field.autogrow();
field.keydown(function(e) {
if (e.keyCode == 13) {
form.submit();
return false;
}
});
// Make all forms submitting through Advanced Search Form
form.submit(function(e) {
e.preventDefault();
setupSearch.submitSearch(form, field);
});
},
submitSearch: function(form, field) {
if (advancedSearch.checkMinFields() || (!field.hasClass('defaultText') && field.val() != '')) {
// Sync the refine lists
// syncCheckboxLists($('#refineList input'), $('#advancedRefineList input'));
form.find('button').addClass('active');
$('#advancedSearchForm').submit();
} else {
$('#queryField').focus();
}
},
、ヒットするようです私が入力したものをフォームに提出する「競合状態」は、テキストフィールドに場所をオートコンプリートするものではありません。 form.submit()がオートコンプリートをテキストフィールドに塗りつぶすためにイベントの順序を制御できる方法はありますか?
私はjQueryオートコンプリートプラグインを使用していますが、2つのデータセットを許可するように変更しました。どの機能を待つことをお勧めしますか?フォーム送信機能?そして、私はsetTimeoutを使ってこれを行うでしょうか? –
数十があります。 jQuery UIの組み込みUI(http://jqueryui.com/demos/autocomplete/)ですか? –
http://docs.jquery.com/UI/Autocompleteは私が使用しているものです。 –