发一下我在给公司写项目进度管理系统时使用的AJAX POST函数,支持checkbox类型radio类型和多选select,其中select发送的值是用“|”将数组各项隔开的值,在服务器端需要重新分解为数组,另外使用多选seclet时要注意把name写为xxx的形式,不要写为xxx[]的形式。
在网络编程方面我还只是一个初见门槛的婴孩,代码难免有不足的地方,如果发现有什么可以改进优化的地方,还请大家给我留言,共同修改。
在此先感谢下我的师傅,沙滩凉鞋,在我学习的时候,一直给我很大的帮助。
代码:
//AJAX POST By www.liuyuanjun.com function submitForm(f,i){ //f为提交的表单名,i为将返回值写入的位置ID if(window.XMLHttpRequest){ var xmlReq = new XMLHttpRequest(); } else if(window.ActiveXObject) { var xmlReq = new ActiveXObject('Microsoft.XMLHTTP'); } var formData = '', elem = '', value = ''; for(var s=0; s<f.elements.length; s++){ elem = f.elements[s]; if(formData != ''){ formData += '&'; } value = elem.value; name = elem.name; if(elem.type == "checkbox"){ value = (elem.checked == true) ? elem.value :""; } if(elem.type == "radio"){ name = (elem.checked == true) ? elem.name :"";; } if(elem.type == "select-multiple"){ var o = elem.getElementsByTagName("option"); value = ""; for(ii=0;ii<o.length;ii++){ if(o[ii].selected == true){ value += o[ii].value + "|"; } } } formData += name+"="+value; } xmlReq.onreadystatechange = function(){ if(xmlReq.readyState == 4){ document.getElementById(i).innerHTML = xmlReq.responseText; } } xmlReq.open(f.method, f.action, true); xmlReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xmlReq.send(formData); return false; }
转载请注明来自 www.liuyuanjun.com 。
要说点啥就在这吧