ha ben voilà !!!!
donc pas de caractère spécifique ...
et là ça va être plus dur ...
je refléchis à ça ce soir car je m'envais là ...
on en reparle demain ...
Version imprimable
ha ben voilà !!!!
donc pas de caractère spécifique ...
et là ça va être plus dur ...
je refléchis à ça ce soir car je m'envais là ...
on en reparle demain ...
ok pas de problème je vais partir aussi tu sera connecté quand + ou -?
demain matin 8h30
nikel Merci à toi :P
Bon après réflexion nocturne, ce n'est pas réalisable directement dans le textarea...
En effet le textwrap hard n'insère pas de caractère spécifique dasn la chaine, il n'est donc pas possible de faire un split...
Une piste serait de transférer le contenu dans un div et d'en mesurer le scrollHeight, en divisant le scrollHeight pas la hauteur d'une ligne de texte on devrait pouvoir faire quelquechose ...
Je ne vois pas trop d'autre solution ... je suis à court d'idées ...
pourtant je t'assure que lorsque je fais en php un echo du texte area en utilisant la fonction nl2br, il met met bien des des <br /> ou il y a eu des retour auto.
Donc le retour auto fait bien un \n
coté serveur oui après transmission des données ... mais à mon avis pas en live coté client ...
J'explore ...
La preuve que non :
aucun caractère ajouté coté client !Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>CharCodes</title> <style type='text/css'> td {border: solid 1px navy; text-align:center;} </style> <script type='text/javascript'> var Texte ="hjdfg2fdsg2dfg5gdf6dfs6gdfgsdfg4"; /* var sep=new RegExp(); sep=/[0-9]/; alert(Texte.split(sep).length) */ function go(texte){ var result='' texte=texte.split('') for (i=0;i<texte.length;i++){ var newline=document.createElement('tr'); var cell1 =document.createElement('td'); cell1.innerHTML=i; var cell2 =document.createElement('td'); var caractere="" switch(texte[i].charCodeAt(0)){ case 32 : caractere= "[Espace]"; break; case 10 : caractere= "[Retour Ligne]"; break; case 13 : caractere= "[Retour Chariot]"; break; default : caractere=texte[i]; } cell2.innerHTML= caractere var cell3 =document.createElement('td'); cell3.innerHTML=texte[i].charCodeAt(0); newline.appendChild(cell1); newline.appendChild(cell2); newline.appendChild(cell3); document.getElementById('res').getElementsByTagName('tbody')[0].appendChild(newline); } } </script> </head> <body> <textarea id="in" rows="3" cols="60" style="wrap:hard"></textarea> <input type="button" onclick="go(document.getElementById('in').value)" value="go" /> <table id='res' style='font-family:verdana'> <tbody> <tr> <td>position</td> <td>caractère</td> <td>code</td> </tr> </tbody> </table> </body> </html>
en effet il n'y a donc aucun moyen de détecter un retour auto?
tu as écris dans la balise textarea style="wrap:hard" ce ne serait pas plutot wrap="hard" comme attribut de la balise
pareil ça ne changera rien au fait qu'il n'insère pas de caractère
ma notation est juste un peu plus w3c valide ...;)
j'avais pensé à autant de input texte que de lignes ...
ah non ce n'est pas possible malheureusement
Que pensez vous de ca :
Code:
1
2
3
4
5
6 // Creer une DIV avec la même largeur que le textarea // Mettre au DIV et à la textarea la même police (très important) // Mesurer la hauter du div (avec "|" comme innerHTML) et la stocker sur lineHeight // Mettre en "" en innerHTML puis faire DIV.appendChild(document.createTextNode(TEXTAREA.value)) // Mesurer la hauteur du div et la divisiver par lineHeight pour obtenir le nombre de ligne
Tout ça c'est tres dependant de la taille du textarea ainsi que de la police (qui ne peut pas être forcée, à part avec "!important" mais c'est pas conseillé).. peut etre faudrait il voir une limite en nombre de caracteres plutot..
bon demain matin je donnerai une explication exacte de ce qu'il me faut pcq oui les caractères sont important mais bcp moin que le nombre de lignes
au fait il faudrait réaliser un textarea avec une longeur de x et une largeur de x. peut importe la manière mais il faudrait que le texte entré par l'utilisateur ne dépasse jamais la largeur ni la longeur du textarea quoi qu'il fasse dans ce bloc.
Code:
1
2
3
4
5
6
7
8
9
10
11
12 <HTML> <BODY> <SCRIPT><!-- function limit(o) { if (o.scrollHeight > o.offsetHeight) { alert("Vous avez dépassé la taille maximum : " + o.scrollHeight + "/" + o.offsetHeight) } } --></SCRIPT> <TEXTAREA style="width: 250px; height: 200px; font: Courier New; font-size: 12px; overflow:hidden" onchange="limit(this)"></TEXTAREA> </BODY> </HTML>
je trouve que le code n'est pas assez restrictif, il faut clicker en dehors pour avoir l'alert et une fois fais "ok"on peu toujour continuer a ajouter des lignes. Il faudrait vraiment que ce soit le curseur qui soit bloker
Ben le coté restrictif c'est à toi de le mettre en place ;)Citation:
Envoyé par gforce
Exemple :
Code:<TEXTAREA ... onkeyup="limit(this)" onchange="limit(this)">
Code:
1
2
3
4
5 function limit(o) { while (o.scollHeight > o.offsetHeight) { o.value = o.value.substr(0, o.value.length-1) } }