javascript : test sur chaine de caractere

javascript : test sur chaine de caractere - HTML/CSS - Programmation

Marsh Posté le 18-05-2006 à 09:18:29    

je repost dans la bonne rubrique
 
voilà j'ai ceci  

Code :
  1. onchange="document.getElementById('autre_fonction1').style.display = (this.options[this.selectedIndex].value=='Spécialisation'? 'block':'none');"


 
sauf que je veux afficher le champs 'autre_fonction' quand il contient la chaine de caractère 'Spécialisation'
et pas quand il est strictement egale à 'Spécialisation'. j'ai testé un tas de truc qui ne marche pas et la je bloque vraiment

Reply

Marsh Posté le 18-05-2006 à 09:18:29   

Reply

Marsh Posté le 18-05-2006 à 09:20:28    

c'est koi le problème? si il contient spécialisation, il est strictement égale a spécialisation. çà revient au meme.

Reply

Marsh Posté le 18-05-2006 à 09:22:06    

antho1983 a écrit :

c'est koi le problème? si il contient spécialisation, il est strictement égale a spécialisation. çà revient au meme.


 
Non.  
 
"blabla Spécialisation bablalba" <> "Spécialisation"
 
 
jedebute75 => Regarde du coté des expressions régulières en JS...


---------------
♈ ♋ ♌ ♍ ♎ ♏ - Agora Fidelio | Galerie d'art Toulousaine
Reply

Marsh Posté le 18-05-2006 à 09:27:20    

ok dsl j'avais pas compris comme çà le pb

Reply

Marsh Posté le 18-05-2006 à 09:45:06    

effectivement (merci lecruel)  lepoulet peut contenir 'poulet' sans être égale à poulet !!!! bref, j'ai déjà épluché tout un tas de truc en js mais j'ai encore rien trouvé qui marche!!! j vais faire un tour du coté des expressions régulières comme tu m'as conseillé!!!

Reply

Marsh Posté le 18-05-2006 à 09:53:29    

jedebute75 a écrit :

j'ai déjà épluché tout un tas de truc en js mais j'ai encore rien trouvé qui marche!!!


T'as essayé la doc ;)
Bref strpos fait exactement ce que tu veux, pas besoin de regex
 

Reply

Marsh Posté le 18-05-2006 à 15:21:37    

ok, merci!!

Reply

Marsh Posté le 18-05-2006 à 16:09:54    

effectivement, un truc comme ça marche :  
 

Code :
  1. if ( strpos ( "fonction" , "specialisation" ) )
  2.     echo ("test OK" );

 
 
mais je sais pas trop comment l'utiliser dans mon cas :  
 

Code :
  1. <select name="fonction1[]" size="4" multiple id="fonction1" onchange="document.getElementById('autre_fonction1').style.display = (this.options[this.selectedIndex].value=='Spécialisation'? 'block':'none');">


 
et en fait, ce scripte j'avoue je l'ai récupéré tout fait et juste adapté à mon formulaire, le truc c'est le '?' , j'avoue ne pas trop comprendre à quoi il sert dans ce cas precis (pourtant a priori je sais à quoi il sert en tant normal)  
bon en gros je suis un peu perdue là :-(((

Reply

Marsh Posté le 18-05-2006 à 17:22:39    

Expression ternaire...
 
condition ? actionSiTrue : actionSiFalse


---------------
♈ ♋ ♌ ♍ ♎ ♏ - Agora Fidelio | Galerie d'art Toulousaine
Reply

Marsh Posté le 18-05-2006 à 17:26:53    

"pouet poulet saucisson".indexOf('tartampion') -> -1 (false)
"pouet poulet saucisson".indexOf('poulet') -> 6 (true)
"pouet poulet saucisson".indexOf('saucisson') -> 13 (true)

Reply

Marsh Posté le 18-05-2006 à 17:26:53   

Reply

Marsh Posté le 18-05-2006 à 17:35:43    

ok, merci pour l'info du ?!!!
sinon afbilou, je comprend que si il trouve la chaine de caractère il renvoie true et la position et par defaut -1 si pas trouvé!!  
bon a priori si j'ai  "ma super specialisation".indexOf('specialisation') il renverra true ce qui serait parfait dans mon cas!!!
maintenant faut que je l'adapte à mon scripte , donc un truc du genre :  
 
onchange="document.getElementById('autre_fonction1').style.display = (this.options [indexOf( this.selectedIndex)].value=='Spécialisation'? 'block':'none');"
hem, :-((( bon je teste mais j'ai des doutes sur ma façon de placer le truc

Reply

Marsh Posté le 18-05-2006 à 17:40:44    

:S
 
(this.options[this.selectedIndex].value.indexOf('Spécialisation'))? 'block':'none'

Reply

Marsh Posté le 18-05-2006 à 17:48:16    

Tout va bien ...

Citation :

"ma super specialisation".indexOf('specialisation')


... quand tout a coup ...

Citation :

this.options [indexOf( this.selectedIndex)].value=='Spécialisation'?


 
/me sidéré ...
 

Code :
  1. "ma super specialisation".indexOf('specialisation') renverra true


=

Code :
  1. this.options [indexOf( this.selectedIndex)].value=='Spécialisation'


??


Message édité par afbilou le 18-05-2006 à 17:48:30
Reply

Marsh Posté le 18-05-2006 à 18:06:43    

mouais, me disais aussi que j'avais ecrit n'importe quoi. j'ai trop bossé suis crevée. je test ton truc mais a vu d'oeil je sens que ça va marcher :-))  MERCI

Reply

Marsh Posté le 19-05-2006 à 09:26:13    

hummm, je ne comprend pas :-((. en tout cas ça marche pas ça c une certitude.

Reply

Marsh Posté le 19-05-2006 à 10:33:50    

Voila de quoi t'amuser un peu et apprendre a gérer ce que tu souhaites manipuler :

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
  3. <head>
  4. <title>Test</title>
  5. <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
  6. <script type="text/javascript">
  7.  window.onload = function () {
  8.   var select = document.getElementsByTagName('SELECT')[0];
  9.   select.onchange = function() {
  10.    var value = this.getElementsByTagName('OPTION')[this.selectedIndex].value;
  11.    alert('Tu as sélectioné : ' + value);
  12.    if (value.indexOf('3')!=-1)
  13.     alert('"'+value+'" contient le chiffre "3"');
  14.    else
  15.     alert('"'+value+'" ne contient pas le chiffre "3"');
  16.   }
  17.  }
  18. </script>
  19. </head>
  20. <body>
  21. <h1>Test</h1>
  22. <p>
  23.  Whaou, faisons un beau select !
  24.  <select>
  25.   <option value="Le 1er option" >1</option>
  26.   <option value="Le 2eme option">2</option>
  27.   <option value="Le 3eme option">3</option>
  28.   <option value="Le 4eme option">4</option>
  29.   <option value="Le 5eme option">5</option>
  30.   <option value="Le 6eme option">6</option>
  31.  </select>
  32. </p>
  33. </body>
  34. </html>


Message édité par afbilou le 19-05-2006 à 10:39:02
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed