Gå til innhold

activeElement


Anbefalte innlegg

Har laget en teksteditor veldig lik den her på forumet (knapper for B, I, U osv). Men problemet er at jeg har en egen ingress-boks også (altså to textarea'er). Vil ha det slik at dersom jeg f.eks trykker på B-knappen, skal B-verdien (|B|) settes inn i den textarea'en som sist var active.

 

Slik jeg forstår det, funker ikke activeElement fordi selve kanppen blir aktive når jeg trykker på den, og ikke textarea'en. Fins det no LastActive-liknende? eller blir alternativet å sette en variable ved onfocus på i to tekstboksene? i såfall, noen som kan vise et greit eksempel?

 

På forhånd takk.

Lenke til kommentar
Videoannonse
Annonse

Prøv å bruk funksjonen "onBlur()". Slik at du da f.eks lager en variabel som heter type og setter denne til 1 når du forlater det ene tekstområdet og til 2 når du forlater det andre. Skjønte du hva jeg mente?

Lenke til kommentar

ikke helt nei :p kan veldig lite javascript.

 

Men jeg tenkte du på noe slik? (forenklet kode)


function insert(tag) {

 document.article.box.value += "[" + tag "]"

}



<textarea name="1" onBlur="box=this">

<textarea name="2" onBlur="box=this">



<input type="button" onclik="insert('b')">

Lenke til kommentar

Tror Neo mente at du skulle sette et flagg som indikerte hvilket felt som sist var aktivt. Da kunne insertfunksjonen sjekke mot dette for å avgjøre hvilket tekstfelt som skulle oppdateres.

 

Din løsning var imidlertid ikke så dum den heller. Litt modifisert:

 

 


<HTML>

<HEAD>

<SCRIPT LANGUAGE='javascript'>

   var objTextField;



   function setLastActive(objThis)

    { objTextField = objThis;}



   function insert(tag) 

   { objTextField.value += "[" + tag + "]";}

</SCRIPT>

</HEAD>



   <BODY>

       <TEXTAREA NAME='textfieldA' ONBLUR='setLastActive(this)' ></TEXTAREA>

       <TEXTAREA NAME='textfieldA' ONBLUR='setLastActive(this)' ></TEXTAREA>

       <INPUT TYPE='button' VALUE='B' ONCLICK=insert('B');>

   </BODY>

</HTML>

 

 

BIW

Lenke til kommentar


if(objTextField!=undefined) objTextField.value += "[" + tag + "]";

 

Du kan alternativt legge på en feilmelding:


if(objTextField!=undefined) objTextField.value += "[" + tag + "]";

else alert('Feltene er tomme, vennligst fyll dem ut først'); 

 

eller noe i den duren. Det kommer litt an på løsningen din.

Tror kanskje det er bedre å sjekke mot hvert enkelt tekstfelt før du submit'er data, og gi en spesifikk feilmelding til hver av dem.

 

 

BIW

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...