Volendo puoi fare una funzione che salva i value degli input.
Dopo innerHTML fai in modo che i value vengano riassegnati agli input.


Abbozzo qualcosa:
codice:
myValues=new Array();

function prendiInput() {
myInputs=new Array();
myInputs=elemento.getElementsByTagName("input");
for(i=0; i!=myInputs.lenght; i++)
   {
       salvaValue(myInputs[i], i);
   }
}

function salvaValue(elem, num) {
myValues[num]=elem.getAttribute("value");
}

function reimpostaValue_innerHTML() {
elemento.innerHTML+="quello che vuoi tu";
myInputs=new Array();
myInputs=elemento.getElementsByTagName("input");
for(g=0; g!=myInputs.lenght-i; g++)
   {
       myInputs[g].setAttribute("value", myValues[g]);
   }
}
Dovrebbe funzionare. L'importante è che non usi altri contatori con nome di variabile i. Altrimneti vai nella funzione prendiInput e sostituisci i con un altro nome.