# Zwischenablage in mehrere Formularfelder kopieren?!



## Superpet (18. Februar 2004)

Hallo!

ich stehe vor einem fast unlösbaren Problem und hoffe hier Hilfe zu finden?!

Aus meiner Zwischenablage möchte ich verschiedende HTML-Formularfelder füllen, dabei ist der Aufbau der Zwischenablage immer gleich

Bsp:
Zwischenablage

Zeile 1 "Name" --> Formularfeld "Name"
Zeile 2 "Telefon" --> Formularfeld "Telefon"
Zeile 3 "eMail" ---> Formularfeld "eMail"

Die Zeile 1 der Zwischenablage soll in das Eingabefeld "Name", die Zeile 2 in "Telefon" etc mit einem Klick transferiert (kopiert) werden.

Die gesamte Zwischenablage in 1 Feld zu kopieren, habe ich geschafft -> bringt mich jedoch nicht weiter.

Hat jemand ein Tipp? Danke schon mal im voraus!


----------



## Sven Mintel (19. Februar 2004)

So z.B.
>Zwischenablage auslesen...
>anhand \n die 3 Zeilen ermitteln
>Felder füllen


```
<html>
<head>
<script type="text/javascript">
<!--
wie=(document.all&&!window.opera&&navigator.platform.search(/win/i)>=0);

function fill()
{
if(!wie){return;}
try {
    cBoard=window.clipboardData.getData('Text');
    }
catch(e)
    {
    alert('Damit das geht, muss im IE der Zugriff auf das Clipboard gestattet werden!');
    }
pattern=/^(.+)\n(.+)\n(.+)/;
if(pattern.exec(cBoard))
    {
    document.all.urName.value=RegExp.$1;
    document.all.urPhone.value=RegExp.$2;
    document.all.urMail.value=RegExp.$3;
    }
}
//-->
</script>
</head>
<body>
<form>
<br><input type="button"value="paste"onclick="fill()">
<br>Name:<br><input type="text"name="urName"size="20">
<br>Phone:<br><input type="text"name="urPhone"size="20">
<br>Mail:<br><input type="text"name="urMail"size="20">
</form>
</body>
</html>
```
>Test


----------



## Superpet (19. Februar 2004)

*Formularfelder noch nicht ganz gelöst?!*

Super das haut hin. Vielen Dank dafür....

ABER: Ich habe mehr als 3 Felder, um genau zu sein 14 Felder und ab der 10 Variable (document.all.urMail.value=RegExp.$10 schreibt er mit "undefined" ins Feld. Hängt wohl mit "$10" zusammen.

Wie kann ich das lösen?



... Sorry, aber ich lerne noch... und wie steht so schon unter meinem Nick "Superpet -> Grünschnabel"  ))))


----------



## Sven Mintel (19. Februar 2004)

Jo, das geht nicht.. RegExp kann sich nur 9 Matches merken.

So gehts aber mit beliebig vielen Feldern:

```
function fill()
{
if(!wie){return;}

felder=new Array('urName','urPhone','urMail','uswusf');

cBoard=window.clipboardData.getData('Text');
if(zeilen=cBoard.match(/(.+)\n/g))
    {
    for(z=0;z<zeilen.length;++z)
        {
        document.all(felder[z]).value=zeilen[z];
        }
    }
}
```
... in dem Array "felder" musst du die Namen aller Eingabefelder eingeben.. das wars schon


----------



## Superpet (20. Februar 2004)

Herzlichen Dank ! Das läuft wie geschmiert.... 

LANG LEBE DER CODE, LANG LEBE SEINE JÜNGER!


----------



## Andreas Gaisbauer (20. Februar 2004)

Sehr geniale Lösung Fatalus - Top.


----------



## Sven Mintel (20. Februar 2004)

*freu*


----------

