03. august 2005 - 23:23Der er
3 kommentarer og 1 løsning
Tab i textarea virker ikke i firefox
Hej,
Ved at søge i nogen gamle spørgsmål fandt jeg følgende script som for tab til at virke i et textarea, men det virker ikke i firefox. Har ikke selv kunne rette det, og har ikke kunne finde andre koder som virker.
Her er koden: <script language="javascript" type="text/javascript"> function tab(fld,e){ charCode = (e.which)?e.which:e.keyCode; var txt; if(charCode==9){ if(document.selection){ txt = document.selection.createRange(); txt.text = "\t"; }else{ fld.value += "\t"; } return false; }else return true; } </script>
Hvordan kan jeg få det til også at virke i firefox? I IE virker det fint, men i Firefox indsætter koden en tab til sidst i textarea'et - ikke der hvor cursoren er, som den burde - og så skifter den til næste felt/link, som den heller ikke skal.
Sådan her så sætter den en tab ind det rigtige sted i FF også ---- <script language="javascript" type="text/javascript"> function tab(fld,e){ charCode = (e.which)?e.which:e.keyCode; var txt; if(charCode==9){ if (fld.setSelectionRange) { fld.value = fld.value.substring(0,fld.selectionStart) + "\t" + fld.value.substring(fld.selectionEnd,fld.value.length); }else if(document.selection){ txt = document.selection.createRange(); txt.text = "\t"; }else{ fld.value += "\t"; } return false; }else{ return true; } } </script>
<textarea name="code" cols="100" rows="20" wrap="off" onkeydown="return tab(this,event);"></textarea> ---- Men jeg ved ikke hvordan du slipper af med at den rent faktisk også laver en tab og altså hopper videre til næste felt Du kunne måske overveje at benytte en knap til det, hvorved der ingen problem er, tilsvarende som når man indsætter tags i et textarea ---- <script language="javascript" type="text/javascript"> function tab(fld,elm){ if (fld.setSelectionRange) { fld.value = fld.value.substring(0,fld.selectionStart) + elm + fld.value.substring(fld.selectionEnd,fld.value.length); }else if(document.selection){ fld.focus(); var range = document.selection.createRange(); range.text = elm; }else{ fld.value += elm; } } </script>
og svaret ;O) .. måske en anden har en godt løsning. prøver lige ad en gang mere
Synes godt om
Ny brugerNybegynder
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.