function serializeForm(f) { var query = ""; for (var i = 0; i < f.elements.length; i++) { var elem = f.elements[i]; var vals = []; if (elem && elem.type) { switch (elem.type) { case "checkbox": case "radio": if (elem.checked) { vals.push(elem.value); } break; case "select-one": vals.push(elem.options[elem.selectedIndex].value); break; case "select-multiple": for (var j = 0; j < elem.options.length; j++) { if (elem.options[j].selected) { vals.push(elem.options[j].value); } } break; case "hidden": case "text": case "password": case "textarea": vals.push(elem.value); break; } for (var j = 0; j < vals.length; j++) { if (query.length > 0) { query += "&"; } query += encodeURIComponent(elem.name) + "=" + encodeURIComponent(vals[j]); } } } return query; } var f = document.forms[0]; var q = "myvar=value&" + serializeForm(f);