[JS] Tekst automatisch invoeren in een tekstvak

Pagina: 1
Acties:
  • 231 views sinds 30-01-2008

  • Rexomnium
  • Registratie: September 2000
  • Laatst online: 15-08 01:22

Rexomnium

Vincam aut moriar

Topicstarter
Hoi mensen, ik zit met een probleempje. Ik heb een formulier waarin mensen hun reacties kunnen typen. Daaronder heb ik enkele smileys staan en ik wil de mensen de mogelijkheid geven om die smileys aan te klikken en dat de bijbehorende code in het vak wordt ingevuld.

Daar heb ik de volgende functie voor geschreven:
JavaScript:
1
2
3
4
5
function addSmile(){
 oldText=document.reactie.body.value;
 newText=document.reactie.body.value+" :) ";
 document.reactie.body.value=newText;
}


In de HTML roep ik de functie zo op
HTML:
1
<a href="#" onClick="JavaScript:addSmile()">[img]"pics/smiles/smile.gif"[/img]</a> :)


Ik maak gebruik van een CMS dat niet door mij is gemaakt. Daarin hebben ze in het formulier de textarea (waar je dus de reactie intypt) 'body' genoemd. Javascript kent body als een vaste waarde en wil dan dus niet werken. Is er een manier om dat te kunnen omzeilen? Ik moet body, anders werkt het reactiescript niet.

Kan ik bijvoorbeeld aan het begin van de javascript de bodytag defiëneren als zijnde aan eigen variabele? Alvast bedankt.

[ Voor 6% gewijzigd door Rexomnium op 14-07-2003 11:42 ]

We zijn allemaal vaandeldrager in een optocht van gekwetsten.


  • deDorus
  • Registratie: Augustus 2001
  • Laatst online: 21-08 08:34

deDorus

Meisje, ik ben een C-man...

Probeer document.reactie.elements['body'].value

Verwijderd

Misschien kan je het textarea een eigen id meegegeven, dus je code in zoiets wijzigen:
HTML:
1
<textarea name = "body" cols = "20" rows = "20" id = "mijnbody">

en dan met js GetElementById gebruiken:
JavaScript:
1
2
3
function addSmile(){
 document.getElementById('mijnbody').value = document.getElementById('mijnbody').value + ':)';
}

Edit: hint: maak van je smiley een parameter..

[ Voor 35% gewijzigd door Verwijderd op 14-07-2003 11:48 ]


  • Rexomnium
  • Registratie: September 2000
  • Laatst online: 15-08 01:22

Rexomnium

Vincam aut moriar

Topicstarter
deDorus schreef op 14 juli 2003 @ 11:46:
Probeer document.reactie.elements['body'].value
Werkt... thx :)

@sKiLL4

Waarom moet ik van de smileycodes een parameter maken?

We zijn allemaal vaandeldrager in een optocht van gekwetsten.


  • WvdWest
  • Registratie: Augustus 2002
  • Niet online
Je zou natuurlijk kunnen kijken hoe dat in het reactie script werkt. Je kan ook met GetElementByID werken. Als ID gebruik je textarea en vervolgens vraag je van elk element de "name" property op en controleert of dit body is. Zo ja, element gevonden.
zoiets als dit dus
JavaScript:
1
2
3
4
5
6
7
8
intLengte = document.GetElementByID("textarea").length
for (x=0;x<intLength;x++)
{
      if (document.GetElementByID("textarea").name == "body")
      {
           /*en hier jouw code*/
      }
}


Als er niks veranderd in je pagina kan je ook nog uitzoeken welk volgnummer deze area heeft zodat je niet hoeft te loopen. Scheelt weer wat in het laden van de pagina.

I'm not a complete idiot - several parts are missing.


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

WvdWest schreef op 14 juli 2003 @ 11:52:
Je zou natuurlijk kunnen kijken hoe dat in het reactie script werkt. Je kan ook met GetElementByID werken. Als ID gebruik je textarea en vervolgens vraag je van elk element de "name" property op en controleert of dit body is. Zo ja, element gevonden.
zoiets als dit dus
Bedoel jij niet document.getElementByTagName ?
RexomniuM schreef op 14 juli 2003 @ 11:52:
[...]

Werkt... thx :)

@sKiLL4

Waarom moet ik van de smileycodes een parameter maken?
Als je meerdere (verschillende) smilies wil toevoegen, dan ben je met een functie klaar:

Java:
1
2
3
4
5
function addSmile(whichOne){
 oldText=document.reactie.body.value;
 newText=document.reactie.body.value + whichOne
 document.reactie.body.value=newText;
}


Aanroep wordt dan: addSmile(':-)');

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 21:21

crisp

Devver

Pixelated

gebruik nooit de ranzige dot-notatie om formelementen te benaderen, maar altijd document.forms['formpje'].elements['elementje']; scheelt je een hoop kopzorgen :)

toch wel redelijk basic verder dit :)

Intentionally left blank

Pagina: 1

Dit topic is gesloten.