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 :

Autocomplete : effacer la saisie précédente [UI]


Sujet :

jQuery

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 33
    Par défaut Autocomplete : effacer la saisie précédente
    Bonjour,

    J'utilise Jquery UI Autocomplete dans un formulaire type moteur de recherche avec plusierus champs dont une recherche par commune, c'est ce champ qui est en autocomplétion.

    Voici le scénario :

    1 - Arrivée sur le formulaire vierge, on sélectionne une commune (champ 'commune' en autocomplétion)

    2 - Le champ 'commune' prend la valeur 'textuelle' - exemple : Paris (75001) - et un champ caché 'commune_id' reçoit comme valeur l'id (celui de la table dans la base de données) de la commune, par exemple : 1234.

    3 - Le formulaire est posté, les valeurs sont réaffichées.

    4 - Si on veut modifier la commune, je souhaiterais que la commune saisie précédemment soit alors effacée, ainsi que le champ caché commune_id bien sûr.

    A noter que je passe le département si celui-ci a été sélectionné, cela permet bien entendu de ne rechercher (dans mon fichier json/autocomplete.php) que parmi les communes du département concerné.

    En fait je sais comment effacer (commune.val() = "") mais je ne trouve pas quel déclencheur mettre parmi les options d'événements d'UI Autocomplete (j'ai regardé la doc donc). J'ai tenté plusieurs choses sans résultats et si je mets un évènement sur le champ en dehors de la fonction autocomplete alors l'autocomplétion ne fonctionne plus du tout (par exemple avec $("#commune).onkeyup).

    Attention, je ne veux pas du return:false dans l'évènement select qui fait que la valeur sélectionnée ne se met pas dans le champ de saisie.

    Voici le code :

    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
    34
    35
    36
    37
    38
    39
    40
    41
     
    $("#commune").autocomplete({
    		minLength: 3,
    		source: function (request, response) {
    			$.ajax({
    				type: "GET",                        
    				url: "../json/autocomplete.php",
    				contentType: "application/json; charset=utf-8",
    				dataType: "json",                                                    
    				data: { term: $("#commune").val(),
    					    dep: $("#departement").val()
    				},			         
    				success: function(data) {					
    				     if (data=="cas1") {
    						alert("Une erreur est survenue");
    					    return false;
                         }
     
                         if (data=="cas2") {
     						alert("Aucun résultat trouvé pour la commune saisie");
     					    return false;
                         }
     
    					response($.map(data, function(item) {
    						return {
    							id: item.com_num,
    							value: item.com_v_nom+" ("+item.com_v_cp+")"					
    						}
    					})) 
    				},				
    				error: function(jqXHR, textStatus, errorThrown) {
    					alert("Une erreur est survenue");
    				}				
    			}); // -- $.ajax
    		}, // -- source
     
    		select: function(event, ui) {
    			$("#commune_id").val(ui.item.id);	    			
    		}	   
    	});	
    }
    Une idée ? merci d'avance.

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $( "#commune" ).on( "focus", function(){
    	$( this ).val( "" );
    	$( "#commune_id" ).val( "" );
    });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 33
    Par défaut Parfait
    Ca fonctionne nickel, j'étais justement en train de chercher de ce côté là, merci beaucoup.

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

Discussions similaires

  1. [AC-2003] effacer la saisie d'une zone texte
    Par chuspyto dans le forum IHM
    Réponses: 10
    Dernier message: 12/02/2010, 07h16
  2. sauvegarde avec effacement des données précédentes
    Par cbleas dans le forum Administration
    Réponses: 2
    Dernier message: 15/09/2008, 11h03
  3. Réponses: 4
    Dernier message: 11/08/2008, 10h07
  4. Réponses: 5
    Dernier message: 22/04/2008, 15h49
  5. effacer la saisie semi automatique
    Par intik dans le forum Windows XP
    Réponses: 1
    Dernier message: 19/01/2007, 22h16

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