start en sluit tags automatisch toevoegen.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Thomas de vries

thomas de vries

29/05/2011 20:10:09
Quote Anchor link
Goedenavond

Ik heb een vraagje?
Ik heb een ubb parser en nu wil ik dat ik knoppen boven de texarea heb staan
en dat als ik erop druk dat dan in de textarea het komt te staan op de plaats van de cursor.
Ik heb al op google gezocht maar kan het niet vinden(Verkeerd zoeken).
Ik weet ook niet goed waar je dan op moet zoeken.
Kan iemand mij een beetje op weg helpen.

Alvast bedankt,

Thomas de Vries.
 
PHP hulp

PHP hulp

15/01/2025 07:13:00
 
Joris van Rijn

Joris van Rijn

29/05/2011 20:31:32
 
Vincent Huisman

Vincent Huisman

29/05/2011 21:39:53
Quote Anchor link
De plek van de cursor heet "caret", dan zul je wel genoeg vinden denk ik
 
Thomas de vries

thomas de vries

29/05/2011 23:00:25
Quote Anchor link
@joris ik gebruik nu dat script van pastebin
Maar loop nu tegen het volgende probleem aan.
Dit is mijn java script code
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<script language="JavaScript">
function insertAtCaret(obj, text) {
        if(document.selection) {
            obj.focus();
            var orig = obj.value.replace(/\r\n/g, "\n");
            var range = document.selection.createRange();

            if(range.parentElement() != obj) {
                return false;
            }

            range.text = text;
            
            var actual = tmp = obj.value.replace(/\r\n/g, "\n");

            for(var diff = 0; diff < orig.length; diff++) {
                if(orig.charAt(diff) != actual.charAt(diff)) break;
            }

            for(var index = 0, start = 0;
                tmp.match(text)
                    && (tmp = tmp.replace(text, ""))
                    && index <= diff;
                index = start + text.length
            ) {
                start = actual.indexOf(text, index);
            }
        } else if(obj.selectionStart) {
            var start = obj.selectionStart;
            var end   = obj.selectionEnd;

            obj.value = obj.value.substr(0, start)
                + text
                + obj.value.substr(end, obj.value.length);
        }
        
        if(start != null) {
            setCaretTo(obj, start + text.length);
        } else {
            obj.value += text;
        }
    }
    
    function setCaretTo(obj, pos) {
        if(obj.createTextRange) {
            var range = obj.createTextRange();
            range.move('character', pos);
            range.select();
        } else if(obj.selectionStart) {
            obj.focus();
            obj.setSelectionRange(pos, pos);
        }
    }
</script>


Dit is mijn form

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<form method="post" action="">
    <input type="button" value="blaat" onclick="insertAtCaret(this.form.text, this.form.value += \'[b][/b]\')">
    <textarea name="text" id="tekst" cols="100" rows="20">'.$show['home_tekst'].'</textarea>
    <br />
    <input type="submit" name="pas_aan" value="Update voorpagina tekst" />
    </form>


Zoals te zien is heb ik wat aangepast namelijk deze regel
<input type="button" value="blaat" onclick="insertAtCaret(this.form.text, this.form.value += \'[*b][*/b]\')">

Als ik nu op die knop druk dan komt op de plek van de cursor
dit te staan

undefined[*b][*/b] Zonder die *tjes
Ik wil die undefined weg hebben maar hoe ga ik dat doen.
Heb al veel geprobeerd met de button link.
Maar nog niet met de daadwerkelijke JS code.

Kan iemand mij helpen hiermee.
Alvast bedankt,

Thomas de Vries.
Gewijzigd op 29/05/2011 23:13:51 door thomas de vries
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.