Avatar billede nitues Nybegynder
15. september 2004 - 17:05 Der er 5 kommentarer

Udskriv formularfelter

Hej,

Jeg har en formular, hvis indhold jeg gerne vil have skrevet ud. Mit problem er bare, at jeg ikke ved hvor meget tekst brugerne vil skrive i felterne og derved kan der fremkomme scrollbar. På nuværende tidspunkt har jeg indsat window.print() men så får jeg jo ikke alt teksten med, hvis det fylder mere end det synlige tekstfelt.
Avatar billede roenving Novice
15. september 2004 - 17:14 #1
Kan du ikke kopiere teksten over i f.eks. en span eller en div i en popup og så udskrive derfra ?-)
Avatar billede nitues Nybegynder
15. september 2004 - 19:19 #2
Mener du, at jeg skal hente indholdet af formularen til en htm.side og så udskrive derfra ? Det vil jeg også gerne, men har ikke kunne finde ud af det. Derfor så jeg det som en mulighed at printe direkte fra en knap. Ved du hvordan jeg henter indholdet ?
Avatar billede roenving Novice
16. september 2004 - 00:29 #3
Print kan kun udføres fra window-objekter, så du har to muligheder:

1) Kopier data over til et andet vindue (eller en iframe f.eks.), hvor der ikke er egentlige felter, og derfor ikke begrænsninger i forhold til antal linjer mv. i textareas o.l.

2) Lav et print-style-sheet, som ændrer proportionerne i dine felter, så det ikke har nogen betydning  ...

-- umiddelbart lyder det som du skal bruge løsning 1 !-)
Avatar billede nitues Nybegynder
16. september 2004 - 09:07 #4
Løsning 1 vil være fin, men hvordan kopieres dataene automatisk over i et andet vindue ?
Avatar billede roenving Novice
18. september 2004 - 17:46 #5
F.eks.

<script type="text/javascript">

function printForm(f){
  var newWin = window.open("","printWin","width=600,heigh=450,status=no");
  var txt = "<html><head><title>Printvindue</t"+"itle></h"+"ead><body>";
  var e = f.elements;
  for(i=0;e.length>i;i++){
    if(e[i].type=='text'||e[i].type=='textarea')txt+=e[i].name+": "+e[i].value+"<br>";
    else if((e[i].type=='checkbox'||e[i].type=='radio')&&e[i].checked)txt+=e[i].name+": Afkrydset "+e[i].value+"<br>";
    else if(e[i].type=='select')
      for(j=0;e[i].length>j;j++)
        if(e[i].options[j].selected)txt+=e[i].name+": Valgt: "+e[i].options[j].value+"<br>";
  }
  txt += "</b"+"ody></h"+"tml>";
  newWin.document.write(txt);
  newWin.document.close();
  newWin.focus();
  newWin.print();
  newWin.close()
}
</script>

-- og så skal du kalde inde fra formen:

<form ...>
...

<button onclick="printForm(this.form);return false;">Print</button>
</form>

-- absolut utestet !-)
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