Se tutto si svolge lato client dovrebbe essere una cosa così
codice:
<HTML>
<HEAD>
<script language="javascript">
function Text(nome,valore){
	this.nome=nome
	this.valore=valore
}
var at = new Array()
function InitText(ff){
	for(i=0;i<ff.elements.length;i++)
		if(ff.elements[i].type=='text')
			at[at.length]=new Text(ff.elements[i].name,'')
}
function CopiaText(ff){
	for(i=0;i<at.length;i++)
		at[i].valore = ff.elements[at[i].nome].value
}
function IncollaText(ff){
	for(i=0;i<at.length;i++)
		ff.elements[at[i].nome].value = at[i].valore
}
</script>
</HEAD>
<BODY onload="InitText(document.NomeForm)">
<form name="NomeForm">
nome<input type="text" name="nome">

cognome<input type="text" name="cognome">

e-mail<input type="text" name="email">

<input type="button" value="copia dati" onclick="CopiaText(this.form)">

<input type="reset" value="reset">

<input type="button" value="incolla dati" onclick="IncollaText(this.form)">
</form>
</BODY>
</HTML>
provalo... se hai bisogno di chiarimenti chiedi pure.
Se però di mezzo ci sono operazioni da eseguire lato server bisogna fare in modo da mantenere i dati...
famme sape'