Javascript qui me taquine
Résolu
Thebuzz
Messages postés
41
Date d'inscription
Statut
Membre
Dernière intervention
-
pyschopathe Messages postés 1974 Date d'inscription Statut Membre Dernière intervention -
pyschopathe Messages postés 1974 Date d'inscription Statut Membre Dernière intervention -
Bonjour chers tous,
J'ai un petit script javascript qui m'ennuie et qui doit être tout simple. Je m'explique :
J'ai un champ texte, rempli par AJAX, et qui contient les exemples suivants avec un minimum de 3 mots :
1000 camions verts
1500 pommes vertes Bon
Je recherche le moyen de mettre dans 3 autres champs le découpage de mots par : 1er mot dans un champ, 2e mot dans un champ, 3e mot dans un champ. Mais si il y a 4 mots (second exemple), alors 1er mot dans un champ, 2e et 3e mot dans un champ, 4e et dernier mot dans un champ. Il me faut donc grouper les mots intermédiaires. Mon code ci-dessous comme début :
Merci de votre aide
J'ai un petit script javascript qui m'ennuie et qui doit être tout simple. Je m'explique :
J'ai un champ texte, rempli par AJAX, et qui contient les exemples suivants avec un minimum de 3 mots :
1000 camions verts
1500 pommes vertes Bon
Je recherche le moyen de mettre dans 3 autres champs le découpage de mots par : 1er mot dans un champ, 2e mot dans un champ, 3e mot dans un champ. Mais si il y a 4 mots (second exemple), alors 1er mot dans un champ, 2e et 3e mot dans un champ, 4e et dernier mot dans un champ. Il me faut donc grouper les mots intermédiaires. Mon code ci-dessous comme début :
<script language="Javascript"> function perso() { var texte_a_copier = document.getElementById("completion_select").value; var mySplitResult = texte_a_copier.split(" "); for(i = 0; i < mySplitResult.length; i++) { document.getElementById("test").value = mySplitResult[0]; } } </script>
Merci de votre aide
A voir également:
- Javascript qui me taquine
- Telecharger javascript - Télécharger - Langages
- A javascript error occurred in the main process - Forum Handicap / Accessibilté
- Erreur #125 javascript - Forum Mozilla Firefox
- Afficher un tableau javascript en html ✓ - Forum Javascript
- Javascript arrondi - Forum Javascript
4 réponses
En gros, il te faut le premier mot dans un champs, le dernier dans un autre, et tous les autres dans un troisième ?
Je ne vois pas où se trouve ton problème, ton code devrait te permettre de faire ça sans difficulté...
Edit :
En gros tu fais quelque chose comme ça :
Re-edit :
Il y a peut-être des erreurs de syntaxe, je ne connais pas (encore...) le Javascript, mais le principe est là.
Je ne vois pas où se trouve ton problème, ton code devrait te permettre de faire ça sans difficulté...
Edit :
En gros tu fais quelque chose comme ça :
<script language="Javascript"> function perso() { var texte_a_copier = document.getElementById("completion_select").value; var mySplitResult = texte_a_copier.split(" "); document.getElementById("champs1").value = mySplitResult[0]; var tmp = ""; for ( i = 1 ; i < mySplitResult.length - 1 ; ++i ) { tmp += mySplitResult[i]; } document.getElementById("champs2").value = tmp; document.getElementById("champs3").value = mySplitResult[mySplitResult.length - 1]; } </script>
Re-edit :
Il y a peut-être des erreurs de syntaxe, je ne connais pas (encore...) le Javascript, mais le principe est là.
Cher pyschopathe,
Je te remercie pour ta réponse qui est absolument ce que recherchait avec juste un petit bémole dans le formatage final :
L'affichage associe, comme dans mon exemple avec 1500 pommes vertes Bon, en pommesvertes au lieu de pommes vertes que je souhaiterait.
Je sais que l'on a découpé par espace, mais il faudrait pouvoir le reformater à l'arrivée.
Aurais-tu une idée ?
C'est parfait pour un novice...
A+
Je te remercie pour ta réponse qui est absolument ce que recherchait avec juste un petit bémole dans le formatage final :
document.getElementById("champs2").value = tmp;
L'affichage associe, comme dans mon exemple avec 1500 pommes vertes Bon, en pommesvertes au lieu de pommes vertes que je souhaiterait.
Je sais que l'on a découpé par espace, mais il faudrait pouvoir le reformater à l'arrivée.
Aurais-tu une idée ?
Il y a peut-être des erreurs de syntaxe, je ne connais pas (encore...) le Javascript, mais le principe est là.
C'est parfait pour un novice...
A+
Cher pyschopathe,
J'ai modifié mon code comme tel pour le formatage :
Ce qui me donne maintenant, toujours selon mon exemple "1500 pommes vertes Bon", l'affichage de " pommes vertes".
Mais comme l'on peut le constater, un espace - le premier - s'est créé : " pommes vertes". Je désire supprimer ce premier espace récalcitrant afin d'obtenir au final "pommes vertes".
Merci de ton aide
J'ai modifié mon code comme tel pour le formatage :
<script language="Javascript"> function perso() { var texte_a_copier = document.getElementById("completion_select").value; var mySplitResult = texte_a_copier.split(" "); document.getElementById("champs1").value = mySplitResult[0]; var tmp = ""; for ( i = 1 ; i < mySplitResult.length - 1 ; ++i ) { tmp += mySplitResult[i].replace(""," "); // modification apportée } document.getElementById("champs2").value = tmp; document.getElementById("champs3").value = mySplitResult[mySplitResult.length - 1]; } </script>
Ce qui me donne maintenant, toujours selon mon exemple "1500 pommes vertes Bon", l'affichage de " pommes vertes".
Mais comme l'on peut le constater, un espace - le premier - s'est créé : " pommes vertes". Je désire supprimer ce premier espace récalcitrant afin d'obtenir au final "pommes vertes".
Merci de ton aide
Cher tous,
J'ai trouvé ce moyen et qui fonctionne pour remplacer le espaces :
Merci de votre aide
A+
J'ai trouvé ce moyen et qui fonctionne pour remplacer le espaces :
<script language="Javascript"> function perso() { var texte_a_copier = document.getElementById("completion_select").value; var mySplitResult = texte_a_copier.split(" "); document.getElementById("champs1").value = mySplitResult[0]; var tmp = ""; for ( i = 1 ; i < mySplitResult.length - 1 ; ++i ) { tmp += mySplitResult[i].replace(""," "); // modification apportée } var regExpBeginning = /^\s+/; var regExpEnd = /\s+$/; document.getElementById("champs2").value = tmptmp.replace(regExpBeginning, "").replace(regExpEnd, ""); document.getElementById("champs3").value = mySplitResult[mySplitResult.length - 1]; } </script>
Merci de votre aide
A+
Désolé, pas pu me connecter avant.
Pour la solution à l'espace restant en première position, il suffit peut-être juste de copier la chaine dans une autre variable, à partir de l'indice 1 (et pas 0), ce sera sans doute moins lourd qu'utiliser un regex non ?
Enfin, comme je ne sais pas s'il existe une fonction pour faire ça, il faudra peut-être le faire dans une boucle... Il faudrait tester les performances entre les deux solutions...
Voilà, ravi d'avoir pu vous aider.
Pour la solution à l'espace restant en première position, il suffit peut-être juste de copier la chaine dans une autre variable, à partir de l'indice 1 (et pas 0), ce sera sans doute moins lourd qu'utiliser un regex non ?
Enfin, comme je ne sais pas s'il existe une fonction pour faire ça, il faudra peut-être le faire dans une boucle... Il faudrait tester les performances entre les deux solutions...
Voilà, ravi d'avoir pu vous aider.