61 votes

jQuery UI Autocomplete - le menu disparaît en survol

Je suis en train d'utiliser jQuery UI Autocomplete pour faire apparaître une liste de noms de personnes dans une Base de données MySQL. La fonction de base est de travailler lorsque vous tapez dans deux lettres ou plus pour une liste de noms possibles s'affiche mais quand je l'ai placez le pointeur de la souris au-dessus de la liste ou appuyez sur la touche bas pour accéder à la liste, il disparaît (2 captures d'écran ci-dessous peuvent aider à expliquer cela).

Ce que cela signifie, c'est que la saisie semi-automatique devient inutile, car je ne peux pas accéder à la liste! Si quelqu'un peut aider je lui en serais très reconnaissant! Des captures d'écran et le code sont affichés ci-dessous.

Tapez les premiers caractères et le menu s'affiche

Screenshot 1

Mais placez le pointeur de la souris ou appuyez sur le " bas " de la clé, et il disparaît avant une sélection peut être faite

Screenshot 2

Code:

HTML:

  <div id="chooseaccount">
  Choose Account to Edit
  <div id="iechooseaccountlabel" class="labeldiv">
    <!--[if IE]>
     Enter Student Name
    <![endif]-->
   </div>

  <input type="text" class="inputs" id="editname" placeholder="Enter Student Name" />

  </div>

jQuery:

$(document).ready(function(){

$("#editname").autocomplete({
 source: "names.php",
 minLength: 2,
});

});

PHP:

<?php  

$mysqli = new mysqli('********', '********', '**********', '*********');
$text = $mysqli->real_escape_string($_GET['term']);

$query = "SELECT name FROM users WHERE name LIKE '%$text%' ORDER BY name ASC";
$result = $mysqli->query($query);
$json = '[';
$first = true;
while($row = $result->fetch_assoc())
{
if (!$first) { $json .=  ','; } else { $first = false; }
$json .= '{"value":"'.$row['name'].'"}';
}
$json .= ']';
echo $json;

?>  

202voto

bicycle Points 2746

L'erreur est due à un conflit qui se produit lorsque deux fichiers de l'interface utilisateur jQuery sont chargés simultanément dans le navigateur du client. Si vous pointez dans votre section <head> , vous verrez probablement que vous avez deux fichiers d' interface utilisateur jQuery différents référencés ici. Retirez-en un et cela fonctionnera.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X