Avatar billede runzor Nybegynder
11. maj 2005 - 23:55 Der er 12 kommentarer og
1 løsning

Enter indsætter <br>

jeg har et tekstfelt hvor det indtastede gemmes i en DB. Mit problem er at et linieskift med [ENTER] registreres i tekstfeltet, men <br>'et kan ikke trækkes med ud i DB'en. Jeg ved det findes en masse "add-ons" til et tekstfelt, men jeg har ikke brug for andet (læs = brugeren skal ikke kunne andet). Derfor har jeg brug for et javascript som "lytter" efter et [ENTER]-tast og når det kommer skal den indsætte et <bR> i tekstfeltet. Helt optimalt ville være om det kunne gøres "skjult" så brugeren ikke skal se på dette "trick"

Håber 100 point er nok, er det ikke spytter jeg gerne 100 mere i.
Avatar billede busschou Praktikant
12. maj 2005 - 07:38 #1
Hvis brugeren _IKKE_ skal se det så skal du ikke gøre det i javascript.
Så skal du gøre det i PHP eller ASP (hvilket bruger du?) inden du sætter det ind i databasen
Hvis du fx i asp henter textfeltet som
besked = request.form("besked")
så laver du blot en replace
besked = replace(besked,"\n","<br>")
Det kan være det ikke er \n men vbCrLf, eller igen \n\r - prøv dig frem :o)
I php kan du benytte funktionen nl2br
$besked = nl2br($besked)
Avatar billede busschou Praktikant
12. maj 2005 - 07:39 #2
Det kan godt lade sig gøre i javascript at "lytte". Men jeg kan ikke se hvordan du i javascript som jo kører hos brugeren ,vil undgå at vise brugeren at du indsætter <br>
Avatar billede runzor Nybegynder
12. maj 2005 - 11:31 #3
kigger lige på det i eftermiddag :-)
Avatar billede runzor Nybegynder
12. maj 2005 - 23:34 #4
Jeg programmere i ASP. Umiddelbart er det ikke noget der virker. Problemet består i at jeg ikke kan trække det [enter] ud som textareaet registrerer.

Jeg kan se det problematikken du nævner med javascriptet. Så er muligheden der er tilbage at lave så <br> indsættes og så er det bare ærgerligt om brugeren kan se dette.

Det jeg forestiller mig javascriptet skal lytte efter er noget i denne stil:

hvis enter trykkes
  indsætter "<br>" i det anvendte textarea
slut hvis

det er det eneste i bund og grund. Problemet er at jeg intet kan i javascripts så derfor er jeg helt på bar bund.

jeg har fundet denne stump i htmlarea's kode:
// cancel ENTER key and insert <BR> instead
      if (ord == 13 && editEvent.type == 'keypress') {
        editEvent.returnValue = false;
        editor_insertHTML(objname, "<br>");
        return;
      }
Nu er det vel "bare" at få det til at sætte ind i mit textarea???
Avatar billede busschou Praktikant
13. maj 2005 - 00:43 #5
Denne her virker i IE
---
<script>
function replaceEnter(){
if (window.event.keyCode==13){
  var elm = document.getElementById('besked');
  elm.value = elm.value + '<br>';
}
}
</script>

<textarea id="besked" cols="20" rows="10" onkeydown="replaceEnter();"></textarea>
Avatar billede claus_joergensen Nybegynder
13. maj 2005 - 00:46 #6
Kan ikke helt forstå hvorfor

<%
  ... 
  newStr = Replace(oldstr,vbCrLf,"<br />",1,-1,1)
%>
ikke er nok ?
Avatar billede claus_joergensen Nybegynder
13. maj 2005 - 00:47 #7
Og bemærk at denne først skal bruges EFTER dbUdtræk, vbCrLf går fint ind i en database (Har kun testet med Access, ASP skodder til MySQL), og der er ingen problemer.
Avatar billede runzor Nybegynder
13. maj 2005 - 09:52 #8
takker for begge løsninger. de virker fint. smid lige en besked så får i point
Avatar billede runzor Nybegynder
13. maj 2005 - 09:54 #9
claus: newStr = Replace(oldstr,vbCrLf,"<br />",1,-1,1)

hvad er de sidste 1,-1,1 til? bare lidt nysgerrig, jeg har nemlig ikke set det brugt før
Avatar billede busschou Praktikant
13. maj 2005 - 10:41 #10
oki doki :O)
Avatar billede runzor Nybegynder
19. maj 2005 - 12:50 #11
nu kan jeg vidst ikke vente mere så du får sku pointene busschou
Avatar billede busschou Praktikant
19. maj 2005 - 13:15 #12
runzor >> havde helt glemt du spurgte til replace, se evt her for forklaring :o)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vsfctreplace.asp
Avatar billede runzor Nybegynder
19. maj 2005 - 13:19 #13
takker :-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester