Bonjour,
J'ai un formulaire comprenant plusieurs champs contenu.
Soit contenu1, contenu2, contenu3 et contenu4 tous en textarea dans lesquels je voudrais via des bouton faire des mises en formes avec bbcode.
Pour pouvoir y introduire des bbcode via des boutons j'ai mis dans mon head le code suivant
mais le oField = document.forms['contenu'].elements['contenu1']; ne reconnait que l'élément contenu1 et je voudrais savoir comment faire pour qu'les boutons sur contenu2, contenu3 et contenu4 fonctionnent pour ces champs propres.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
65
66
67
68
69
70
71
72
73
74
75
76
77 <script language="Javascript"> var isMozilla = (navigator.userAgent.toLowerCase().indexOf('gecko')!=-1) ? true : false; var regexp = new RegExp("[\r]","gi"); function storeCaret(selec) { if (isMozilla) { // Si on est sur Mozilla oField = document.forms['contenu'].elements['contenu1']; objectValue = oField.value; deb = oField.selectionStart; fin = oField.selectionEnd; objectValueDeb = objectValue.substring( 0 , oField.selectionStart ); objectValueFin = objectValue.substring( oField.selectionEnd , oField.textLength ); objectSelected = objectValue.substring( oField.selectionStart ,oField.selectionEnd ); // alert("Debut:'"+objectValueDeb+"' ("+deb+")\nFin:'"+objectValueFin+"' ("+fin+")\n\nSelectionné:'"+objectSelected+"'("+(fin-deb)+")"); oField.value = objectValueDeb + "[" + selec + "]" + objectSelected + "[/" + selec + "]" + objectValueFin; oField.selectionStart = strlen(objectValueDeb); oField.selectionEnd = strlen(objectValueDeb + "[" + selec + "]" + objectSelected + "[/" + selec + "]"); oField.focus(); oField.setSelectionRange( objectValueDeb.length + selec.length + 2, objectValueDeb.length + selec.length + 2); } else { // Si on est sur IE oField = document.forms['contenu'].elements['contenu1']; var str = document.selection.createRange().text; if (str.length>0) { // Si on a selectionné du texte var sel = document.selection.createRange(); sel.text = "[" + selec + "]" + str + "[/" + selec + "]"; sel.collapse(); sel.select(); } else { oField.focus(oField.caretPos); // alert(oField.caretPos+"\n"+oField.value.length+"\n") oField.focus(oField.value.length); oField.caretPos = document.selection.createRange().duplicate(); var bidon = "%~%"; var orig = oField.value; oField.caretPos.text = bidon; var i = oField.value.search(bidon); oField.value = orig.substr(0,i) + "[" + selec + "][/" + selec + "]" + orig.substr(i, oField.value.length); var r = 0; for(n = 0; n < i; n++) {if(regexp.test(oField.value.substr(n,2)) == true){r++;}}; pos = i + 2 + selec.length - r; //placer(document.forms['contenu'].elements['contenu'], pos); var r = oField.createTextRange(); r.moveStart('character', pos); r.collapse(); r.select(); } } } </script>
Je ne suis pas un spécialiste de javascript.
Quelqu'un pourrait-il m'aider s'il vous plaît. Merci par avance.
Partager