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 :

Des class sur plusieurs inputs


Sujet :

jQuery

  1. #1
    Membre régulier
    Homme Profil pro
    Consultant process engineer industrial
    Inscrit en
    Janvier 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant process engineer industrial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 148
    Points : 93
    Points
    93
    Par défaut Des class sur plusieurs inputs
    Bonjour,

    j'ai un petit souci avec mon code,

    je sais pas trop comment expliquer mon problème.

    j'ai un formulaire avec des suggestions
    le souci c'est comme je peux avoir plusieurs champs qui vont faire appel au suggestion, et bien ça fait la procédure sur les 2 champs.

    une petit exemple que j'ai mis en ligne ici:http://www.osteopathe-chaumontenvexin.fr/test/
    Entrez le nom d'une ville ou un code postal (la déjà vous apercevrais un problème car ça réagi sur les 2 champs)
    Ensuite sélectionnez une ville dans la liste (ça entre les données dans les 2 champs ...)

    voilà mon problème. j'espère avoir pu vous apporter les outils nécessaire pour que vous comprenez la ou je veux en venir.

    voici le code js:
    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
    function lookup(inputString) {
    	if(inputString.length == 0) {
    		// Hide the suggestion box.
    		$('.suggestions').hide();
    	} else {
    		$.post("rpc.php", {queryString: ""+inputString+""}, function(data){
    			if(data.length >0) {
    				$('.suggestions').show();
    				$('.autoSuggestionsList').html(data);
    			}
    		});
    	}
    } // lookup
     
    function fill(thisValue) {
    	$('.inputString').val(thisValue);
    	setTimeout("$('.suggestions').hide();", 200);
    }
    et le code html:
    Code html : 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
    <div>
    	<form>
           	<div>
    		<input type="text" size="30" value="" class="inputString" onkeyup="lookup(this.value);" onblur="fill();" /> <label title="inputString"> &lt;= D&eacute;part</label>
    	</div>
    	<div class="suggestionsBox suggestions" style="display: none;">
    		<img src="upArrow.png" style="position: relative; top: -12px; left: 30px;" alt="upArrow" />
    		<div class="autoSuggestionsList suggestionList"></div>
    	</div>
     
      <div>
    		<input type="text" size="30" value="" class="inputString" onkeyup="lookup(this.value);" onblur="fill();" />
    	  </div>
    	<div class="suggestionsBox suggestions" style="display: none;">
    		<img src="upArrow.png" style="position: relative; top: -12px; left: 30px;" alt="upArrow" />
    		<div class="autoSuggestionsList suggestionList"></div>
    	</div>
    </form>
    </div>

    a titre d'information la fonction fill correspond à ce que ajax va retourner
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <li onClick="fill('le nom de la ville, le code postal');">le nom de la ville, le code postal</li>
    Merci d'avance

    Cordialement

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1

  3. #3
    Membre régulier
    Homme Profil pro
    Consultant process engineer industrial
    Inscrit en
    Janvier 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant process engineer industrial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 148
    Points : 93
    Points
    93
    Par défaut
    j'ai jeté un œil sur $(this) mais je vois pas comment l utiliser
    j'ai essayé de faire ça..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function fill(thisValue) {
    	var inputString = $(this).attr('.inputString');
    	inputString.val(thisValue);
    	setTimeout("$('.suggestions').hide();", 200);
    }
    mais à priori c'est pas comme ça..

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    Teste ceci ...

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <ul>
      <li class="foo">un</li>
      <li class="foo">deux</li>
      <li class="foo">trois</li>
      <li class="foo">quatre</li>
    </ul>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $('.foo').click (function(){
      alert($(this).text();
    })

  5. #5
    Membre régulier
    Homme Profil pro
    Consultant process engineer industrial
    Inscrit en
    Janvier 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant process engineer industrial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 148
    Points : 93
    Points
    93
    Par défaut
    alors je comprend maintenant la ou tu veux en venir,
    ça na pas l'aire de marcher quand je rentre des infos dans le input
    quand je sélectionne une ligne aucune alerte... bizar..

    mais avec les <li> qu'il y a en dessous ça marche très bien..

    Je t'invite à jeter un œil tu comprendras plus facilement ce que je veux dire:http://www.osteopathe-chaumontenvexin.fr/test/
    (j'ai bien modifier mon fichier php)

  6. #6
    Membre régulier
    Homme Profil pro
    Consultant process engineer industrial
    Inscrit en
    Janvier 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant process engineer industrial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 148
    Points : 93
    Points
    93
    Par défaut
    SpaceFrog,

    J'ai décidé de reprendre tout à zéro, voici ce que j'ai refais pour le moment http://jsfiddle.net/RkWhN/6/

    Je me retrouve avec un problème, car ça affiche toutes les div qui ont la class suggestions qu'il y a dans la page quand tu écris dans un champ.

    j'ai essayé de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    elem.next('.suggestions').show();
    afin de sélectionner la div qui suit le champ input.. mais ça marche encore moins..

    EDIT:


    je vais finir par régler le problème tout seule ^^ j'ai trouvé à force de réfléchir,
    j'ai ajouté parents() ce qui donne http://jsfiddle.net/RkWhN/7/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     elem.parents().next('.suggestions').show()
    mais du coup ça ma perdu sur parents() et parent() car les 2 fonctionnes.. je comprend plus la différence entre les 2..

  7. #7
    Membre régulier
    Homme Profil pro
    Consultant process engineer industrial
    Inscrit en
    Janvier 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant process engineer industrial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 148
    Points : 93
    Points
    93
    Par défaut
    Je suis à bout cette fois... je me retrouve avec un autre problème http://osteopathe-chaumontenvexin.fr/test/
    Quand je rentre un ville la suggestion fonctionne, mais à partir du moment ou je sélectionne la ville dans la liste ça injecte le résultat sélectionné dans les 2 champs...

    Actuellement c'est comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function fill(thisValue) {		
    	$('input.inputString').val(thisValue);
    	setTimeout("$('.suggestions').hide();", 200);
    }
    J'ai essayé de plusieurs façon...

    Comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function fill(thisValue) {
    	$('input.inputString').prev().val(thisValue);
    	setTimeout("$('.suggestions').hide();", 200);
    }
    Comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function fill(thisValue) {
    	parents('.suggestions').parents('.champ').next('input.inputString').val(thisValue);
    	setTimeout("$('.suggestions').hide();", 200);
    }
    ou encore comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function fill(thisValue) {	
    	parent().find('input.inputString').val(thisValue);
    	setTimeout("$('.suggestions').hide();", 200);
    }
    et plein d'autre encore, je pense ne pas être loin du bon...

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

Discussions similaires

  1. [Swing] Imprimer des JeditorPane sur plusieurs pages ?
    Par bilou_lelapinou dans le forum AWT/Swing
    Réponses: 22
    Dernier message: 29/11/2006, 22h28
  2. Réponses: 6
    Dernier message: 27/04/2006, 10h41
  3. avoir des tables sur plusieurs disques ??
    Par reski dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 09/02/2006, 16h26
  4. Réponses: 4
    Dernier message: 25/11/2005, 18h15
  5. Réponses: 2
    Dernier message: 18/11/2005, 21h40

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