J'utilise le Plugin JQuery Autocomplete , pas l'interface automatique de l'UI. J'aimerais faire un message fort> Neckickable Strard> aucun message de résultats apparaît chaque fois qu'ils entrent quelque chose qui n'a aucun résultat de l'autocomplete. Comment puis-je faire ça? P>
3 Réponses :
Voici 1/2 une solution; Demandez à votre appel Ajax renvoyer la chaîne "Aucun résultat" quand il n'a aucun résultat. P>
Pour que le résultat unique n'est pas cliquable, il faut probablement chercher à la source du plugin. P>
Je suis prêt à accepter une solution qui n'envoie aucun résultat de PHP ou de JS, peu importe pour moi.
@babonk: Avez-vous mis en œuvre les résultats de votre PHP?
Actuellement non, mais je pourrais faire cela s'il y avait une solution
Voici une solution qui nécessite quelques petites modifications à JQuery.Autocomplete.js.
dans jquery.Autocomplete.js.js: p>
Modifier la fonction Hideresultsnow () à celle-ci appelle ELTLEDATA () première chose p>
<html> <head> <script src="http://code.jquery.com/jquery-latest.js"></script> <link rel="stylesheet" href="http://dev.jquery.com/view/trunk/plugins/autocomplete/demo/main.css" type="text/css" /> <link rel="stylesheet" href="http://dev.jquery.com/view/trunk/plugins/autocomplete/jquery.autocomplete.css" type="text/css" /> <script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/autocomplete/lib/jquery.bgiframe.min.js"></script> <script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/autocomplete/lib/jquery.dimensions.js"></script> <script type="text/javascript" src="jquery.autocomplete.js"></script> <script> $(document).ready(function(){ var data = "Core Selectors Attributes Traversing Manipulation CSS Events Effects Ajax Utilities".split(" "); $("#example").autocomplete(data); }); </script> </head> <body> API Reference: <input id="example" /> (try "C" or "E") <div id='emptyData' class='ac_results' style='display: none; position: absolute; width: 151px; top: 20px; left: 91px;'> <ul style="max-height: 180px; overflow: auto;"> <li id='noDataMsg' >No Results</li> </ul> </div> </body> </html>
Merci, ça a fonctionné pour moi. Couple de changements que j'ai faits pour mon usage: 1) Forcé de ne pas montrer () quand il n'y avait rien d'entré 2) avec plusieurs autocompleurs sur la page, vous devez ajouter des ifs pour le faire fonctionner avec les bons. Merci pour la réponse approfondie!
@babonk: Comment avez-vous forcé cette obligation de ne pas montrer quand rien n'a été entré et probablement avant toute entrée?
@Innatev ici est ma jquery.Autocomplete.js. Vous pouvez différer de voir les changements que j'ai faits, je pense que j'ai fait quelques: Pastebin.com/sknh9fiy
Je pense que au lieu d'obtenir un autocomplete pour faire l'AJAX, vous pouvez le faire vous-même, puis transmettez les résultats à l'autocomplete, avec un filtre simple entre ces deux pour aucun résultat entrant dans le serveur.
var input = $('input.autocomplete'); var inputLimit = 10; // Create warning message and hide it var warning = $('<p></p>').insertAfter(input).text('No results').addClass('warning').hide(); input.keyup(function(){ warning.hide(); $.get('url.php', {q: this.value, limit: inputLimit}, function(data){ if(data){ input.autocomplete(data); } else { warning.show(); } } });
Donc, s'il n'y a pas de résultats, vous voulez que cela descendit et montrent un "résultat", qui étant un élément indiquant "aucun résultat" - et qu'il soit nébuleux?