Aide sur Javascript

Aide sur Javascript - HTML/CSS - Programmation

Marsh Posté le 01-12-2008 à 13:57:05    

Salut,
 
voici un code pour ajouté une valeur d'un liste déroulante dans un champs. avec un bouton [+]
Je voudrai suprimé la valeur ajouté en utilisant un bouton [-] mais je sèche, car a chaque fois j'ai la valeur NaN qui s'affiche
 
code :  
 

Code :
  1. // Pour ajouté un valeur
  2. <script type="text/javascript">
  3. function twTags_add(tag) {
  4.    lt = document.getElementById('list_pr');
  5.    if (lt.value != '') {
  6.       // recuperation et trasformation des tags  
  7.       tags = lt.value.split('-');
  8.       for (var i=0; i<tags.length;i++) {
  9.            if (tags[i] == tag) { tag = '' ;
  10.            alert('Oupss Cette option est déjà séléctionnée !!!'); break;}           
  11.       }
  12.       if (tag) lt.value += '-' + tag;
  13.    } else lt.value = tag;
  14. }
  15. </script>
  16. // Pour supprimer une valeur
  17. <script type="text/javascript">
  18. function twTags_sup(tag) {
  19.    lt = document.getElementById('list_pr');
  20.    if (lt.value != '') {
  21.       // recuperation et trasformation des tags  
  22.       tags = lt.value.split('-');
  23.       for (var i=0; i<tags.length;i++) {
  24.            if (tags[i] == tag) {lt.value += - tag ; break;}           
  25.       }
  26.       if (tag) lt.value -= '-' - tag;
  27.    } else lt.value = tag;
  28. }
  29. </script>
  30.                <p><label for="list_pr" >Risques* :</label>
  31. <input type="text"  name="list_pr" id="list_pr" disabled> Dans :
  32. <select id=liste_pr name=liste_pr size=1>
  33. <option value=1>Valeur 1</option>
  34. <option value=2>Valeur 2</option>
  35. <option value=3>Valeur 3</option>
  36. </select>
  37. <input type=button onclick=twTags_add(document.getElementById('liste_pr').value) value=+>
  38. <input type=button onclick=twTags_sup(document.getElementById('liste_pr').value) value=->
  39. </p>


 
Merci pour votre aide


Message édité par pony99 le 01-12-2008 à 13:59:43
Reply

Marsh Posté le 01-12-2008 à 13:57:05   

Reply

Marsh Posté le 01-12-2008 à 14:15:47    

bonjour,
 tu te compliques la vie...
 
function twTags_sup(tag) {  
 if ( tag.selectedIndex>=0) tag.remove(tag.selectedIndex)
}  
 
<input  type="button"  
           onclick="twTags_sup(document.getElementById('liste_pr'))" value="-">
 
Cordialement.


---------------
[mon site] [m'écrire]
Reply

Marsh Posté le 01-12-2008 à 14:22:18    

Salut bul3, et merci pour ta réponse, mais la solution que tu m'a donné ne fonction pas!

Reply

Marsh Posté le 01-12-2008 à 15:35:18    

tu voudrais pas être plus explicite dans ta réponse ? merci

Reply

Marsh Posté le 01-12-2008 à 15:50:58    

Ok désolé
La solution que m'a donné bul3 ne fonctionne pas.
En cliquand sur [-] ça me supprime les choix de la liste déroulante et non celle du champs
Moi je voudrai que ce soit la valeur du champs qui soit suprimer.
 
Exemple si une personne ajoute : choix 1 et Choix 2 dans la liste déroulante (ce qui donne 1-2 dans le champs).
Disant que la personne c planté en ajoutant le Choix 2, et qu'il veut corrigé en cliquant sur [-]  
[-] ça nous suprime la valeur ajouté par [+] c'est a dire le [-2]
 

Reply

Marsh Posté le 01-12-2008 à 18:09:07    

Je verrai ta fonction twTags_sup plutôt comme ça :

Code :
  1. function twTags_sup(tag) {
  2.    lt = document.getElementById('list_pr')
  3.    if (lt.value != '') {
  4.       // recuperation et trasformation des tags   
  5.       var liste = ''
  6.       tags = lt.value.split('-')
  7.       for (var i=0; i<tags.length;i++) {
  8.            if (tags[i] != tag) liste += "-" + tags[i]
  9.       }
  10.       lt.value = liste.length > 1 ? liste.substr(1) : ''
  11.    }
  12.    else lt.value = tag
  13. }


 
Edit: d'ailleurs juste pour préciser: la soustraction avec les chaines de caractères ne permet pas de retirer une sous-chaine d'une autre. En javascript, ça va simplement convertir les arguments en nombre et faire la soustraction. Si la chaine ne peux pas être convertie, tu auras ... NaN


Message édité par tpierron le 01-12-2008 à 18:15:19
Reply

Marsh Posté le 02-12-2008 à 10:31:09    

Salut tpierron
Désolé mais cela fonctionne pas, en cliquand sur [-], rien ne se passe

Reply

Marsh Posté le 02-12-2008 à 14:47:39    

Les rapports d'erreur, ce n'est pas ton truc, on dirait. Bah, parceque ça marche chez moi sous IE7 et FF. Donc s'il y a une erreur quelconque au niveau de javascript, poste la ici.

Reply

Marsh Posté le 02-12-2008 à 17:18:53    

Mais j'ai rien compris firebug! ou il ne trouve aucune érreur.
Sur IE, j'ai bien activé la case pour pour les notification des erreur de script, mais rien!
 
Voici mon scripte entier
 

Code :
  1. <fieldset id="stock">
  2.              
  3.               <legend>Phrases de risque et de sécurité</legend><br/>
  4.               <em>Choisisez les phrases de Risque ou de sécurité dans la liste déroulante puis cliquez sur + </em><br/><br/><br/>
  5.            
  6.               <script type="text/javascript">
  7. function twTags_add(tag) {
  8.    lt = document.getElementById('list_pr');
  9.    if (lt.value != '') {
  10.       // recuperation et trasformation des tags  
  11.       tags = lt.value.split('-');
  12.       for (var i=0; i<tags.length;i++) {
  13.            if (tags[i] == tag) { tag = '' ;
  14.            alert('Oupss Cette option est déjà séléctionnée !!!'); break;}           
  15.       }
  16.       if (tag) lt.value += '-' + tag;
  17.    } else lt.value = tag;
  18. }
  19. </script>
  20.                <p><label for="list_pr" >Phrase R* :</label>
  21. <input type="text"  name="list_pr" id="list_pr" > choix :
  22. <select id=liste_pr name=liste_pr size=1><? phrase_r () ;?>//  
  23. <script type="text/javascript">
  24. function twTags_sup(tag) {
  25.    lt = document.getElementById('list_pr')
  26.    if (lt.value != '') {
  27.       // recuperation et trasformation des tags   
  28.       var liste = ''
  29.       tags = lt.value.split('-')
  30.       for (var i=0; i<tags.length;i++) {
  31.            if (tags[i] != tag) liste += "-" + tags[i]
  32.       }
  33.       lt.value = liste.length > 1 ? liste.substr(1) : ''
  34.    }
  35.    else lt.value = tag
  36. }
  37. </script>
  38. <input  type="button" 
  39.            onclick="twTags_sup(document.getElementById('liste_pr'))" value="-">
  40.  
  41. </p>


Reply

Marsh Posté le 02-12-2008 à 17:24:34    

Oué, évidemment si tu changes la manière dont tu appelles la fonction twTags_sup entre temps, je ne peux pas le deviner.
 
Pour info, avant :

Code :
  1. <input type=button onclick=twTags_sup(document.getElementById('liste_pr').value) value=->

Après :

Code :
  1. <input  type="button" onclick="twTags_sup(document.getElementById('liste_pr'))" value="-">

Reply

Marsh Posté le 02-12-2008 à 17:24:34   

Reply

Marsh Posté le 02-12-2008 à 17:36:50    

Excuse moi tpierron j'avais pas fait gaff que tu avais changer l'appel de la fonction.
J'ai re testé et ça marche :bounce: .  
Mais si tu met 3 valeur, (V1-V2-V3) la 3ème valeur (V3) est bien supprimer , mais pas V2 ou V1
 
 

Reply

Marsh Posté le 03-12-2008 à 11:32:51    

Up

Reply

Marsh Posté le 03-12-2008 à 15:16:50    

Hmm, je ne suis pas sûr de comprendre ce que tu veux faire exactement. Ce que j'ai compris :
 
Si dans ton champ tu as: "1-2-3", et que dans ton popup tu choisis "2" et que tu cliques sur moins (-), ton champ contiendra "1-3".
 
Si ce n'est pas ça, va falloir détailler.

Reply

Marsh Posté le 04-12-2008 à 09:20:47    

Salut TPierron et Merci pour ton aide précieuse!  désolé de te repondre que maintenant.
 
Enfait, si dans le champs se trouve J'ai ajouté 1-2-3, si je clique sur [-], seul le dernier ajout est suprimer! les autre ne se suprime pas même si je clique sur [-]
 
je ne sais pas si c plus claire
 
PS : Certain se demonderont pkoi avoir un bouton [-] alors que nous pouvons le changer a la main.
Ben justement j'ai mis le champs en "disabled" pour evité cela

Reply

Marsh Posté le 04-12-2008 à 15:54:13    

Gné, donc si as "1-2-3", et que tu cliques sur (-), tu auras "1-2", puis si tu recliques sur (-), tu auras "1" ?

Code :
  1. function twTags_sup(tag) {
  2.   lt = document.getElementById('list_pr')
  3.   tags = lt.value.split('-')
  4.   if (tags.length > 0)
  5.   {
  6.      tags.splice(tags.length - 1, 1)
  7.      lt.value = tags.join('-')
  8.   }
  9. }


Reply

Sujets relatifs:

Leave a Replay

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