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

JavaScript Discussion :

Tester si un texte commence par une valeur donnée


Sujet :

JavaScript

  1. #1
    Membre confirmé Avatar de dany13
    Inscrit en
    Mai 2004
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 168
    Par défaut Tester si un texte commence par une valeur donnée
    Bonjour,

    je colle sur un morceau de code (qui est plutôt basique j'avoue) mais n’étant pas experte en JS, je fais appel a vos lumières

    Situation :
    - 1 select box avec des valeurs
    - 1 select box caché qui doit s'afficher selon la valeur sélectionnée dans la 1ere select Box

    Objectif :
    => afficher la 2eme select box si le contenu du texte (et non la "value") de la 1ere commence par "ZZ-"

    Voici mon code actuel qui ne fait pas ce que je souhaiterai krrrr
    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
    <script type="text/javascript">
    $(document).ready(function(){
    	if ($("select[title='Ma 1ere selectBox'] option:selected").text() == "ZZ-")
    	{
    		$('nobr:contains("Ma 2eme selectBox")').closest('tr').hide();
    	}
    	else
    	{
    		$('nobr:contains("Ma 2eme selectBox")').closest('tr').show();
    	}
     
    	// Show/hide columns based on Drop Down Selection
    	$("select[title='Ma 1ere selectBox']").change(function() {
    		if ($("select[title='Ma 1ere selectBox'] option:selected").text() == "ZZ-")
    		{
    			$('nobr:contains("Ma 2eme selectBox")').closest('tr').hide();
    		}
    		else
    		{
    			$('nobr:contains("Ma 2eme selectBox")').closest('tr').show();
    		}
    	});
    });
    </script>
    Dans mon code, ce qui ne va pas c'est cette partie qui conditionne sur "si mon texte selectionné = ZZ-". Alors que moi je souhaiterai "si mon texte sélectionné commence par ZZ-" ou "si les 3premier caractere de mon texte selectionné = ZZ-"".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($("select[title='Ma 1ere selectBox'] option:selected").text() == "ZZ-")
    Merci par avance de vos lights

  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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    regarde du coté de indexOf ou des expressions régulières...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre confirmé Avatar de dany13
    Inscrit en
    Mai 2004
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 168
    Par défaut
    Merci SpaceFrog.
    J'ai peut etre trouvé une piste avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    option:selected:contains('ZZ-')
    je vous tiens au jus!!

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonjour,
    cela ne te donnera pas la position du texte mais seulement sa présence.

    Il existe aussi la méthode subString(), dans ton cas text.substring(0,2) pour les deux premiers caractères.

  5. #5
    Membre confirmé Avatar de dany13
    Inscrit en
    Mai 2004
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 168
    Par défaut
    NoSmoking, merci pour ta proposition mais je ne parviens pas à le faire fonctionner (meme si effectivement c'est une solution que j'aurai préférée au "contains").

    Apres quelques tests, la solution avec le "contains" fonctionne parfaitement :
    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
    <script type="text/javascript">
    $(document).ready(function(){
    	if ($("select[title='Ma 1ere selectBox'] option:selected:contains('ZZ -')").length)
    	{
    		$('nobr:contains("Ma 2eme selectBox")').closest('tr').show();
    	}
    	else
    	{
    		$('nobr:contains("Ma 2eme selectBox")').closest('tr').hide();
    	}
     
    	// Show/hide columns based on Drop Down Selection
    	$("select[title='Ma 1ere selectBox']").change(function() {
    		if ($("select[title='Ma 1ere selectBox'] option:selected:contains('ZZ -')").length)
    		{
    			$('nobr:contains("Ma 2eme selectBox")').closest('tr').show();
    		}
    		else
    		{
    			$('nobr:contains("Ma 2eme selectBox")').closest('tr').hide();
    		}
    	});
    });
    </script>
    Merci pour m'avoir guidé vers cette solution.
    Bonne journée @tous

  6. #6
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    Cela ne fonctionnera pas si tu as des zz - ailleurs ...
    indexOf permet de savoir si c'est au début de la chaine
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre confirmé Avatar de dany13
    Inscrit en
    Mai 2004
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 168
    Par défaut
    Certe SpaceFrog, tout comme la solution de NoSmoking, je préférerai vos solutions au "contains" (bien que cette solution me convienne dans le sens où ma liste est fermée, il n'y aura jamais d'autres cas qui ne rentre pas dans le traitement qui doit se faire).
    Mais comme précisé, je ne suis pas à l’aise avec la syntaxe du Javascript et je ne vois pas (après plusieurs tests) comme "écrire" mon code avec le IndexOf ou le substring.

  8. #8
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    Rien de bien sorcier pourtant ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if  ($("select[title='Ma 1ere selectBox'] :selected").text().indexOf('ZZ -')===0)
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre confirmé Avatar de dany13
    Inscrit en
    Mai 2004
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 168
    Par défaut
    Merci SpaceFrog, ça fonctionne aussi et c'est bien mieux c'est certain
    Et bien je dirai que pour moi c'est super sorcier oui...Dans les langage de programmation que j'ai déjà utilisé et qui font que le code s'ecrit de façon evidente, j'ai du mal avec Javascrip, le coup des 3 caractères égal, la façon de pointer text() avec l'attribut IndexOf ...ce n'est pas si "évident" pour moi

    Merci pour vos lumières si précieuse.

    Bonne journée @vous

  10. #10
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Je suis un peu surpris, je pensais que SpaceFrog te fournirait la version avec les RegExp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var texte = $('select[title=\'Ma 1ere selectBox\'] :selected').text();
    if (/^ZZ/.test(texte)) {
      // texte commence par ZZ
    }

  11. #11
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    J'ai l'air si méchant que ça ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

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

Discussions similaires

  1. [RegEx] Regex sur les 3 premiers caractères d'une chaine
    Par boo64 dans le forum Langage
    Réponses: 6
    Dernier message: 01/02/2011, 09h10
  2. Requête sur les 10 premiers caractères d'un champ
    Par Trebor_ dans le forum Débuter
    Réponses: 2
    Dernier message: 29/10/2008, 16h40
  3. Réponses: 19
    Dernier message: 12/04/2007, 15h11
  4. afficher les n premiers caractères d'un champs
    Par kabool dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 08/03/2006, 18h22
  5. Réponses: 2
    Dernier message: 04/09/2004, 10h53

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