Avatar billede faran Nybegynder
20. februar 2007 - 21:40 Der er 3 kommentarer og
1 løsning

Indsæt tekst i textarea

Hej alle sammen

Jeg skal, til et forum, have lavet en funktion gør det muligt at indsætte noget tekst i et textarea ved tryk på billede (smiley). Det er imidlertidigt ikke problemet, for jeg kan godt få det til at fungere. Men problemet er, at jeg gerne vil have teksten til at blive placeret hvor markøren er i textarea. Sådan som det er nu, bliver teksten placeret sidste!

Nogen som har et forslag til, at læse problemet?
Avatar billede crazysnap Seniormester
20. februar 2007 - 23:34 #1
Hej faran,

Jeg har stablet et lille eksempel på benene som burde løse din problemstilling, prøv at se nedenfor: :)


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

    <script language="JavaScript" type="text/javascript">

        function storePosition(textBox)
        {
            textBox.selection = GetSelection();
        }

        function insertText(textBoxId, strText)
        {
            var textBox = document.getElementById(textBoxId);
       
            if(document.selection) //IE
            {
                var area = textBox.selection;
                if(area != null) 
                    area.text += strText;
                else
                    textBox.value += strText;
            }
            else //FF
            {
                var oValue = textBox.value; 
                var end = textBox.selectionEnd;

                textBox.value = oValue.substring( 0 , end ) + strText + oValue.substring( end , textBox.textLength );
                textBox.setSelectionRange(end + strText.length, end + strText.length);
            }
           
            textBox.focus();
        }
       
        function GetSelection()
        {
            if(document.selection)
                return document.selection.createRange();
            else if(window.getSelection)
              return window.getSelection();

            return null;
        }
    </script>
</head>
<body >
        <table cellspacing="0" cellpadding="3">
            <tr>
                <td>
                    <textarea id="txtArea" name="txtLayoutViewer"
                        onmouseup="storePosition(this)"
                        onmousedown="storePosition(this)"
                        onkeyup="storePosition(this)"
                        onkeydown="storePosition(this)"
                        onfocus="storePosition(this)"
                        rows="10"
                        cols="20">iiiiiii  iiijjjj  jjjjjjkkkk  kkkkkk
                    </textarea>
                </td>
            </tr>
            <tr>
                <td>
                    <input type="button" value="insert text at cursor position" onclick="insertText('txtArea', ':)');" />
                </td>
            </tr>
        </table>
</body>

</html>


Håber det kan hjælpe dig på vej! :)


Mvh.

- Snap
Avatar billede faran Nybegynder
21. februar 2007 - 13:45 #2
Tak for løsningen! Det virker.
Avatar billede faran Nybegynder
21. februar 2007 - 13:45 #3
...smid lige et svar!
Avatar billede crazysnap Seniormester
21. februar 2007 - 14:18 #4
Det var da godt at høre og glad for jeg kunne hjælpe! :)


Held og lykke med det!


Mvh.

- Snap
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester