Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
886 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Aide sur Javascript

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Aide sur Javascript

n°1819908
pony99
Posté le 01-12-2008 à 13:57:05  profilanswer
 

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
mood
Publicité
Posté le 01-12-2008 à 13:57:05  profilanswer
 

n°1819923
bul3
Posté le 01-12-2008 à 14:15:47  profilanswer
 

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]
n°1819926
pony99
Posté le 01-12-2008 à 14:22:18  profilanswer
 

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

n°1819961
gatsu35
Blablaté par Harko
Posté le 01-12-2008 à 15:35:18  profilanswer
 

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

n°1819980
pony99
Posté le 01-12-2008 à 15:50:58  profilanswer
 

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]
 

n°1820095
tpierron
Posté le 01-12-2008 à 18:09:07  profilanswer
 

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
n°1820477
pony99
Posté le 02-12-2008 à 10:31:09  profilanswer
 

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

n°1820678
tpierron
Posté le 02-12-2008 à 14:47:39  profilanswer
 

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.

n°1820807
pony99
Posté le 02-12-2008 à 17:18:53  profilanswer
 

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>


n°1820815
tpierron
Posté le 02-12-2008 à 17:24:34  profilanswer
 

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="-">

mood
Publicité
Posté le 02-12-2008 à 17:24:34  profilanswer
 

n°1820834
pony99
Posté le 02-12-2008 à 17:36:50  profilanswer
 

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
 
 

n°1821161
pony99
Posté le 03-12-2008 à 11:32:51  profilanswer
 

Up

n°1821363
tpierron
Posté le 03-12-2008 à 15:16:50  profilanswer
 

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.

n°1821749
pony99
Posté le 04-12-2008 à 09:20:47  profilanswer
 

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

n°1821996
tpierron
Posté le 04-12-2008 à 15:54:13  profilanswer
 

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. }



Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Aide sur Javascript

 

Sujets relatifs
Aide EXT JavascriptAide SVP, JavaScript
aide prog javascriptDemande d'aide pour menu dropdown javascript
[resolu]Ouverture image à l'aide de javascriptaide pour programmer PHP et javascript
Besoin d'Aide LotusScript (proche javascript)ecrire dans xml à l'aide de JavaScript.
aide pour un novice du javascriptAide pour une débutante en javascript
Plus de sujets relatifs à : Aide sur Javascript


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR