IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

UI Autocomplete 1.8rc3. Comment supprimer les options de survol ?


Sujet :

jQuery

  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut UI Autocomplete 1.8rc3. Comment supprimer les options de survol ?
    bonjour,
    voila j'aimerais supprimer les options de survol dans le script d'autocomplete de jquery. il me pose pas mal de soucis !
    lorsque je clique sur un élément de la liste, j'attribue des valeurs a des champs hidden, chose que je ne veux pas faire autrement. le probleme est que lorsque je survole un élément de cette liste, mon input text se valorise mais pas les champs hidden.
    mais les internautes qui utiliseront ce système ne vont pas chercher le pourquoi du comment, ils vont s'en tenir là et ne sauront pas que la manipulation est incomplète ...

    bref, je veux annuler toutes les fonctions issus du survol. pourriez-vous m'aider svp ?
    merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <script type="text/javascript">
    $(function() {	
    	$("#ville").autocomplete({
    		source: "inc/search.php",
    		minLength: 2,
    		select: function(event, ui)
    				{
    					var id_recherche = ui.item.id;
     
    					if(id_recherche.search("dept_") == 0)
    					{
    						var num_dept = ui.item.id;
    						num_dept = num_dept.split("dept_");
    						num_dept = num_dept[1];
     
    						document.getElementById("num_dept").value = num_dept;
    					}
    					else if(id_recherche.search("ville_") == 0)
    					{
    						var num_ville = ui.item.id;
    						num_ville = num_ville.split("ville_");
    						num_ville = num_ville[1];
     
    						document.getElementById("num_ville").value = num_ville;
    						document.getElementById("ville_et_cp").value = ui.item.value;
    					}
    				}
    	});
    });
    </script>

  2. #2
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    j'ai trouvé une solution, mais c'est un peu barbare >_<
    bon, je vais dans le fichier jquery.ui.autocomplete.js et je cherche la ligne n° 100

    ensuite je mets ce bout de code en commentaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    /*focus: function( event, ui ) {
    					var item = ui.item.data( "item.autocomplete" );
    					if ( false !== self._trigger( "focus", null, { item: item } ) ) {
    						// use value to match what will end up in the input
    						self.element.val( item.value );
    					}
    				},*/
    mais y-aurait'il un moyen plus propre d'y parvenir ? j'aimerais ne pas toucher au code source de jqueryui !!

  3. #3
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    j'ai trouvé des infos supplémentaires sur le site de jqueryui :

    Before focus is moved to an item (not selecting), ui.item refers to the focused item. The default action of focus is to replace the text field's value with the value of the focused item. Canceling this event prevents the value from being updated, but does not prevent the menu item from being focused.
    Code examples
    Supply a callback function to handle the focus event as an init option.

    $('.selector').autocomplete({
    focus: function(event, ui) { ... }
    });

    Bind to the focus event by type: autocompletefocus.

    $('.selector').bind('autocompletefocus', function(event, ui) {
    ...
    });
    je fais des tentatives, mais pour l'instant je n'ai rien de concluant.

  4. #4
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    voici le code final, ça roule !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <script type="text/javascript">
    $(function() {	
    	$("#ville").autocomplete({
    		source: "inc/search.php",
    		minLength: 2,
    		focus: function(event, ui)
    				{
    					return false;
    				},
    		select: function(event, ui)
    				{
    					var id_recherche = ui.item.id;
    					if(id_recherche.search("dept_") == 0)
    					{
    						var num_dept = ui.item.id;
    						num_dept = num_dept.split("dept_");
    						num_dept = num_dept[1];
     
    						document.getElementById("num_dept").value = num_dept;
    					}
    					else if(id_recherche.search("ville_") == 0)
    					{
    						var num_ville = ui.item.id;
    						num_ville = num_ville.split("ville_");
    						num_ville = num_ville[1];
     
    						document.getElementById("num_ville").value = num_ville;
    						document.getElementById("ville_et_cp").value = ui.item.value;
    					}
    				}
    	});
    });
    </script>
    j'ai bien sûr décommenté les lignes de code dans le fichier jquery.ui.autocomplete.js !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment supprimer les doublons
    Par djelloulc dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 17/09/2013, 14h30
  2. Comment supprimer les doublons?
    Par Dnx dans le forum Langage SQL
    Réponses: 3
    Dernier message: 24/11/2005, 16h35
  3. Comment supprimer les tags RTF
    Par Dnx dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 20/09/2005, 14h55
  4. Réponses: 2
    Dernier message: 04/02/2005, 13h23
  5. [String] Comment supprimer les accents
    Par iuz dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 08/03/2004, 02h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo