<form id="form1"> <input type="text" name='username' value="刘大伟"/><br /> <input name="sex" type="radio" value="男" />男<input name="sex" type="radio" value="女" />女<br /> <input name="hobby" type="checkbox" value="上网" />上网 <input name="hobby" type="checkbox" value="看电影" />看电影 <input name="hobby" type="checkbox" value="看书" />看书 <input name="hobby" type="checkbox" value="学习" />学习<br /> <select name="pay"> <option value="1000-2000">1000-2000</option> <option value="2001-3000">2001-3000</option> <option value="3001-4000">3001-4000</option> </select> <select name="fri" multiple="multiple"> <option>香蕉</option> <option>西瓜</option> <option>葡萄</option> <option>荔枝</option> <option>草莓</option> </select> <button id="serialize-btn">序列化</button> </form> <script type="text/javascript"> function serialize(form){ var arr = []; var field=''; for(var i=0;i<form.elements.length;i++){ field = form.elements[i]; switch(field.type){ case 'select-one': case 'select-multiple': for(var j=0;j<field.options.length;j++){ var option = field.options[j]; if (option.selected){ var optValue = ""; if (option.hasAttribute){ optValue = (option.hasAttribute("value") ? option.value : option.text); } else { optValue = (option.attributes["value"].specified ? option.value : option.text);//目前知道IE6取不到值,IE7没测试,IE8可以 } arr.push(encodeURIComponent(field.name) + "=" + encodeURIComponent(optValue)); } } break; case "radio": case "checkbox": if (!field.checked){ break; } case undefined: case "button": case "submit": case "reset": case "file": break; default : arr.push(encodeURIComponent(field.name)+'='+encodeURIComponent(field.value)) } } return arr.join("&"); } (function(){ var d = document.getElementById('serialize-btn') EventUtil.addHandler(d,'click',function(e){ var form1 = document.getElementById('form1'); str = serialize(form1); str2 = decodeURIComponent(str); alert(str2); //alert(str2); }); })(); </script>