Avatar billede lasseriis Nybegynder
15. januar 2003 - 12:04 Der er 4 kommentarer og
1 løsning

Samme indsæt-knap til flere <textarea>s

Hej jeg skal have lavet det nedenstående sådan at når man trykker på billedet (<input type="image"...) så bliver teksten '<billede></billede>' sat ind i det felt man befinder sig i, jeg ved ikke rigtig om det jeg har nedenunder kan bruges til noget. Og det skal selvfølgelig virke med varierende antal <textarea>s (de bliver genereret af php).

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<script language="JavaScript" type="text/javascript">
<!--
function storeCaret (textEl) {
      if (textEl.createTextRange)
        textEl.caretPos = document.selection.createRange().duplicate();
    }
    function insertAtCaret (textEl, text) {
      if (textEl.createTextRange && textEl.caretPos) {
        var caretPos = textEl.caretPos;
        caretPos.text =
          caretPos.text.charAt(caretPos.text.length - 1) == ' ' ?
            text + ' ' : text;
      }
      else
        textEl.value  = text;
    }

//-->
</script>
</head>
<body>
<form name="tekstForm" action="skriv.php" method="post">
<input type="image" src="gifs/billede.gif" onclick="insertAtCaret(this.form.tekst,'<billede></billede>');"></input>
<textarea class="felt" onfocus="tekst = 'tekst[0]'" name="tekst[0]" cols="98" rows="3">
Tekst i første felt.
</textarea>

<textarea class="felt" onfocus="tekst = 'tekst[1]'" name="tekst[1]" cols="98" rows="5">Tekst i andet felt
</textarea><br/>
<textarea class="felt" onfocus="tekst = 'tekst[2]'" name="tekst[2]" cols="98" rows="3">Tekst i 3. felt</textarea><br/>
<input class="knap" type="submit" value="Gem"></input>
</form>
</body>
</html>
Avatar billede lasseriis Nybegynder
15. januar 2003 - 12:06 #1
JavaScriptet er hentet og tilpasset fra en eller anden side på nettet, og jeg glemte at nævne at teksten selvfølgelig skal sættes ind der hvor cursoren befinder sig. (Den kode er der jo sådan set, men virker kun med et felt med et fast navn.)
Avatar billede Slettet bruger
16. januar 2003 - 16:53 #2
<html>
<head>
<script language="JavaScript" type="text/javascript">
<!--
tekst = -1;

function storeCaret (textEl) {
      if (textEl.createTextRange)
        textEl.caretPos = document.selection.createRange().duplicate();
    }
    function insertAtCaret (textEl, text) {
      if (textEl.createTextRange && textEl.caretPos) {
        var caretPos = textEl.caretPos;
        caretPos.text =
          caretPos.text.charAt(caretPos.text.length - 1) == ' ' ?
            text + ' ' : text;
      }
      else
        textEl.value  = text;
    }

//-->
</script>
</head>
<body>
<form name="tekstForm" action="skriv.php" method="post">
<input type="image" src="gifs/billede.gif" onmousedown="if (tekst != -1) insertAtCaret(document.tekstForm.elements['tekst' + tekst], '<billede></billede>');">
<textarea class="felt" onfocus="tekst = 0;" onblur="tekst = -1;" name="tekst0" cols="98" rows="3">
Tekst i første felt.
</textarea>

<textarea class="felt" onfocus="tekst = 1;" onblur="tekst = -1;" name="tekst1" cols="98" rows="5">Tekst i andet felt
</textarea><br/>
<textarea class="felt" onfocus="tekst = 2;" onblur="tekst = -1;" name="tekst2" cols="98" rows="3">Tekst i 3. felt</textarea><br/>
<input class="knap" type="submit" value="Gem"></input>
</form>
</body>
</html>
Avatar billede lasseriis Nybegynder
17. januar 2003 - 12:29 #3
Øhm, '<billede></billede>' bliver godt nok sat ind, men det erstatter alt det andet tekst i feltet!!!! Det er ikke meningen, den skal sætte '<billede></billede>' ind der hvor cursoren befinder sig i teksten.
Avatar billede Slettet bruger
17. januar 2003 - 14:28 #4
Sådan her:

<html>
<head>
<script language="JavaScript" type="text/javascript">
<!--
tekst = -1;

function storeCaret (textEl) {
      if (textEl.createTextRange)
        textEl.caretPos = document.selection.createRange().duplicate();
    }
    function insertAtCaret (textEl, text) {
      if (textEl.createTextRange && textEl.caretPos) {
        var caretPos = textEl.caretPos;
        caretPos.text =
          caretPos.text.charAt(caretPos.text.length - 1) == ' ' ?
            text + ' ' : text;
      }
      else
        textEl.value  = text;
    }

//-->
</script>
</head>
<body>
<form name="tekstForm" action="skriv.php" method="post">
<img src="gifs/billede.gif" onmousedown="if (tekst != -1) insertAtCaret(document.tekstForm.elements['tekst' + tekst], '<billede></billede>');">
<textarea class="felt" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onfocus="tekst = 0;" onblur="tekst = -1;" name="tekst0" cols="98" rows="3">
Tekst i første felt.
</textarea>
<textarea class="felt" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onfocus="tekst = 1;" onblur="tekst = -1;" name="tekst1" cols="98" rows="5">Tekst i andet felt
</textarea><br/>
<textarea class="felt" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onfocus="tekst = 2;" onblur="tekst = -1;" name="tekst2" cols="98" rows="3">Tekst i 3. felt</textarea><br/>
<input class="knap" type="submit" value="Gem"></input>
</form>
</body>
</html>
Avatar billede lasseriis Nybegynder
21. januar 2003 - 13:05 #5
Nydeligt arbejde fra phoenixv, det virker simpelthen bare som det skal!
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