[Javascript] Focus op geselecteerde tekst behouden na klik

Pagina: 1
Acties:

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
In mijn CMS'je heb ik de mogelijkheid om een stuk tekst te kunnen selecteren en deze te promoten in een nieuws sectie:

Afbeeldingslocatie: http://www.odisys.net/got/tekst.jpg

Afbeeldingslocatie: http://www.odisys.net/got/tekst-admin.jpg

Hoe werkt het?
1. De gebruiker selecteert in de admin een stuk uit de tekst die in zijn browser staat
2. klikt de radiobutton 'geselecteerde tekst promoten'
3. klikt op 'aanpassen'

Op dat moment pak ik de geselecteerde tekst met document.selection en stop de waarde hiervan in een hidden input, waarna ik hem naar de server stuur.

Om het gebruiksgemak te vergroten, werk ik met labels. De gebruiker kan dan ook de radiobutton selecteren door op 'geselecteerde tekst promoten' te klikken:
HTML:
1
2
<input name="action" type="radio" value="promote">
<label for="promote">geselecteerde tekst promoten</label>

Het nadeel is alleen: als iemand de radiobutton selecteert door op de labeltekst te klikken, verlies ik de eerder gemaakte selectie. Dit gebeurt niet als de gebruiker de radiobutton selecteert door op de radiobutton zelf te klikken.

Een workaround is om eerst de radiobutton te selecteren door op de labeltekst te klikken, dan pas de tekst te selecteren en het form te verzenden, maar deze manier zou dan afwijken van de rest van de admin: de gebruiker dient in mijn CMS'je altijd EERST een doelbestand te kiezen en pas DAARNA de actie. In dit geval zou dat dus omgedraaid zijn...

Vandaar ook mijn vraag: is er een mogelijkheid om te zorgen dat de gebruiker toch eerst tekst kan selecteren, en dan middels het klikken op de labeltekst de actie kan kiezen, waarbij dat klikken op de labeltekst niet de selectie doet verdwijnen?

Ik hoop dat ik de situatie goed heb uitgelegd.

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 13:54

crisp

Devver

Pixelated

in plaats van een label een anchor gebruiken:
HTML:
1
<a href="#" onclick="document.getElementById('promote').checked=true;return false">geselecteerde tekst promoten</a>

Intentionally left blank


  • flashin
  • Registratie: Augustus 2002
  • Laatst online: 17-12-2023
Ja dit kan wel, je moet bij de onclick met document.selection.createRange().text; de geselecteerde tekst in een var opslaan, om em dan daarna te onthouden in een hidden input oid. Of wil je per se het ook geselecteerd laten zien op je scherm :)

edit: das beter dus en ik moet beter lezen :(

[ Voor 10% gewijzigd door flashin op 09-08-2004 23:46 ]


  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
@crisp - dank je! Het werkt perfect :D
edit: das beter dus en ik moet beter lezen
Toch ook bedankt :)

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."