You can use javascript cookies, particularly the script linked below, to retain the form contents on the user's computer for any time you specify.
And for constructing the form in the first place, what HTML suite are you using? Dreamweaver is the best for this kind of thing, and well worth the cost.
OK, about the CookieForm code: the original is by Nick Baker and you are permitted to use it.
It is here:
http://javascript.internet.com/forms...orm-saver.html
BUT... it has a small error. I found that one of its form elements was limited so I fixed its code in javascript. That fixed script is shown here, and you are welcome to use it:
// Begin Fixed Repopulation Code /////////////////////////////////////////////////////
// was: var expDays = 100;
//var expDays = .25; // 6 hours
//var expDays = .0417; // approx. 1 hour
//var expDays = .0208; // approx. 30 minutes
var expDays = .0021; // approx. 3 minutes
//var expDays = .0014; // approx. 2 minutes
//var expDays = .0007; // approx. 1 minute
var exp = new Date();
exp.setTime(exp.getTime() + (expDays*24*60*60*1000));
function getCookieVal (offset) {
var endstr = document.cookie.indexOf(";", offset);
if (endstr == -1) { endstr = document.cookie.length; }
return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg) return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
function SetCookie (name, value) {
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}
// cookieForms saves form content of a page.
// use the following code to call it:
// <body onLoad="cookieForms('open', 'form_1', 'form_2', 'form_n')" onUnLoad="cookieForms('save', 'form_1', 'form_2', 'form_n')">
function cookieForms() {
var mode = cookieForms.arguments[0];
for(f=1; f<cookieForms.arguments.length; f++) {
formName = cookieForms.arguments[f];
if(mode == 'open') {
cookieValue = GetCookie('saved_'+formName);
if(cookieValue != null) {
var cookieArray = cookieValue.split('#cf#');
if(cookieArray.length == document[formName].elements.length) {
for(i=0; i<document[formName].elements.length; i++) {
if(cookieArray[i].substring(0,6) == 'select') {
document[formName].elements[i].options.selectedIndex = (cookieArray[i].substr(6));
// Eric Shawn of Sentry (Shawn, Corp.
http://www.shawncorp.com) fixed Nick Baker's BUG on 1/20/2005. Was not loading two-digit values into the selectedIndex using his "substring" implementation
// was: document[formName].elements[i].options.selectedIndex = (cookieArray[i].substring(7, (cookieArray[i].length-1)));
// IT COULD NOT REPOPULATE SELECT OBJECTS WITH 10 OR MORE ELEMENTS! Now it does. Someone should tell him.
}
else if((cookieArray[i] == 'cbtrue') || (cookieArray[i] == 'rbtrue')) { document[formName].elements[i].checked = true; }
else if((cookieArray[i] == 'cbfalse') || (cookieArray[i] == 'rbfalse')) { document[formName].elements[i].checked = false; }
else { document[formName].elements[i].value = (cookieArray[i]) ? cookieArray[i] : ''; }
}
}
}
}
if(mode == 'save') {
cookieValue = '';
for(i=0; i<document[formName].elements.length; i++) {
fieldType = document[formName].elements[i].type;
if(fieldType == 'password') { passValue = ''; }
else if(fieldType == 'checkbox') { passValue = 'cb'+document[formName].elements[i].checked; }
else if(fieldType == 'radio') { passValue = 'rb'+document[formName].elements[i].checked; }
else if(fieldType == 'select-one') { passValue = 'select'+document[formName].elements[i].options.selectedIndex; }
else { passValue = document[formName].elements[i].value; }
cookieValue = cookieValue + passValue + '#cf#';
}
cookieValue = cookieValue.substring(0, cookieValue.length-4); // Remove last delimiter
SetCookie('saved_'+formName, cookieValue, exp);
}
}
}