JavaScript: Zmena hodnoty v <textarea>

Programovacie jazyky, rady, poradňa...
eMPiko
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3085
Registrovaný: 11 jan 2007, 16:40

JavaScript: Zmena hodnoty v <textarea>

Príspevok od používateľa eMPiko »

Zdravicko,
mam mensi problem s JavaScriptom. Potrebujem nahradit vsetky newline znaky na medzery. To som zmakol pomocou:

Kód: Vybrať všetko

document.form.elements['text'].value = document.form.elements['text'].value.replace(/(\r\n|\r|\n)/g, ' ');
Toto sa vykona zakazdym, ked sa nejako zmeni obsah. Funguje to dobre, problemom vsak je, ze pri kazdej zmene obsahu sa scrollbar v <textarea> tagu posunie na zaciatok, tj. ked pisete uz so scrollbarom, pri kazdom znaku sa to vrati na zaciatok. Neviete ako sa toho zbavit?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: JavaScript: Zmena hodnoty v <textarea>

Príspevok od používateľa audiotrack »

je to z hlavy, ale skúsil by som to takto nejak:

Kód: Vybrať všetko

<script type="text/javascript">
function setCursor(el,st,end) {
   if(el.setSelectionRange) {
      el.focus();
      el.setSelectionRange(st,end);
   } else {
      if(el.createTextRange) {
      range = el.createTextRange();
      range.collapse(true);
      range.moveEnd('character',end);
      range.moveStart('character',st);
      range.select();
   }
}
</script>
a potom k tomu čo máš ešte pridať:

Kód: Vybrať všetko

var textLen = document.form.elements['text'].value.length;
setCursor(document.form.elements['text'],textLen,textLen);
malo by to hodiť kurzor a teda aj focus na koniec, ale či to bude vo všetkých prehliadačoch fungovať, to ti neviem bez skúšania. Možno to bude treba trochu odladiť
eMPiko
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3085
Registrovaný: 11 jan 2007, 16:40

Re: JavaScript: Zmena hodnoty v <textarea>

Príspevok od používateľa eMPiko »

Vdaka, po drobnych upravach funguje.
Napísať odpoveď