ちょっとユーザーの現在のクエリの結果がないときにメッセージを返そうとしています。私はkeyupイベントを利用する必要があることを知っていますが、プラグインがそれを使用しているように見えますjqueryオートコンプリートで結果が処理されない
答えて
解析オプション(データ解析を処理する関数)を提供し、解析結果が返されないとき。
この例では、FullName属性とAddress属性を含むJSONオブジェクトの配列を取得していることを前提としています。
$('#search').autocomplete({
dataType: "json",
parse: function(data) {
var array = new Array();
if (!data || data.length == 0) {
// handle no data case specially
}
else {
for (var i = 0; i < data.length; ++i) {
var datum = data[i];
array[array.length] = {
data: datum,
value: data.FullName + ' ' + data.Address,
result: data.DisplayName
};
}
}
return array;
}
});
この質問が古くなって本当に私は新しいjQueryのUI 1.8.16で働いている、とにかく、オートコンプリートは今かなり異なっている:http://jqueryui.com/demos/autocomplete/#default
とにかくあなたがしようとしている場合質問と同じことは、検索結果で呼び出される関数がないことを知る限り、解析関数はもうありません。
私はこれをやってのけるために管理方法は、オートコンプリートのフィルタ機能をオーバーライドしている - 注意:これは、すべてあなたのオートコンプリートに影響します
$.ui.autocomplete.filter = function(array, term) {
var matcher = new RegExp($.ui.autocomplete.escapeRegex(term), "i");
var aryMatches = $.grep(array, function(value) {
return matcher.test(value.label || value.value || value);
});
if (aryMatches.length == 0){
aryMatches.push({
label: '<span class="info" style="font-style: italic;">no match found</span>',
value: null
});
}
return aryMatches;
};
機能は少しソースから変更され、grepの呼び出しは同じです結果がない場合はnullの値を持つオブジェクトを追加して、選択呼び出しをオーバーライドしてnull値をチェックします。
これは、入力を続けても一致するものが見つからない場合、ドロップダウンに「一致するものは見つかりません」という項目が表示されます。これは非常にクールです。選択呼び出しを無効にするために
はjQuery UI Autocomplete disable Select & Close events
$(this).data('autocomplete').menu.options.selected = function(oEvent, ui){
if ($(ui.item).data('item.autocomplete').value != null){
//your code here - remember to call close on your autocomplete after
}
};
を参照してください、私はページ上のすべての私のオートコンプリートでこれを使用するので、値は最初のnullであるかどうかをチェックしてください!あなたがそこにないキーを参照しようとする前に。
ハハ私はその年前に質問しましたが、私は今よりはるかにエレガントなパターンでこれをやり遂げると確信していますが、とにかく感謝します –
私は(メッセージが自動補完リストに示されている)同じ目的のために、次のコードを使用しています:
success: function(data, status, xhr){
if(!data.length){
var result = [
{
label: 'There are no matches for your query: ' + response.term,
value: response.term
}
];
response(result);
}
else{
// normal response
}
}
ます。また、これを調べるために、「応答」イベントを利用することができます。シンプルだがパワフル。 http://api.jqueryui.com/autocomplete/#event-response
response: function (event, ui) {
if (ui.content.length == 0) {
//Display an alert or something similar since there are no results
}
},
- 1. jquery ui autocomplete - openイベント(結果が処理されない)
- 2. Jquery UIオートコンプリートで結果が表示されない
- 3. jquery pluginオートコンプリート - 結果が表示されない
- 4. オートコンプリートで返された結果が表示されない
- 5. jqueryオートコンプリート結果ボックスが小さく
- 6. jquery/asp.netオートコンプリートの結果をフィルタリングしないでください
- 7. JQueryオートコンプリートの結果がフレームでオーバーライドされます
- 8. 入力時にオートコンプリートで結果がフィルタリングされない
- 9. SP2010 FullTetSqlQuery結果がSP2007で処理されていません
- 10. jQueryのオートコンプリート - 結果リンク
- 11. デプロイされたフレックスアプレットがWebサービスの結果を処理しない
- 12. jQueryオートコンプリート:結果が得られません。何か案は?
- 13. JSON結果の処理
- 14. アンドロイドJSON結果処理
- 15. Jqueryオートコンプリート - 入力ボックスに結果を入力しない
- 16. Jqueryオートコンプリートが表示されない
- 17. Jquery UIオートコンプリート - フォームフィールドではなくDIVを選択した結果
- 18. JQuery UIを使用して表示するオートコンプリートで結果が表示されない
- 19. jQueryオートコンプリートではコンソールに結果が表示されますが、ドロップダウンでは表示されません。
- 20. WebFaultExceptionがユーザーコードで処理されない
- 21. JQueryUIオートコンプリートはどのように非同期結果を処理しますか?
- 22. 同期ブロックを使用したJavaの並行処理で期待される結果が得られない
- 23. Tumblr:検索結果が返されない検索結果
- 24. オートコンプリート:私は、リモートデータソースでのjQuery UIのオートコンプリートを使用して、リモートデータソースでは結果を検出していない
- 25. クエリ結果が表示されない
- 26. 処理がスケジュールされていない
- 27. jqueryセレクタの結果を反復処理するには
- 28. 並列処理で配列を処理すると、予期しない結果が発生する
- 29. jqueryが部分的に正しく処理されない
- 30. 提案された結果をjQuery UIオートコンプリート入力に追加しますか?
hmmm nice idea thanks dude! –
万人のおかげで、ありがとうございます! –
ニース、私をたくさん助けました:D – Mert