在web前端使用jq进行form表示提交时,可以使用jquery中的serialize()方法来一次性提交表单的值,如果serialize()中的数据需要额的修改或删除,比如,对密码加密,可以参考下面
/** * * @param formdata serialize()获取的数据 * @param name 要排除掉的name属性 * @return reslut 类似 serialize() 获取数据格式的数据 */ function undatakey(formdata,name) { result = ''; for(var i in formdata.split("&")){ var row = formdata.split("&")[i]; var key = row.split("=")[0]; var value = row.split("=")[1]; if(key != name){ result = result + row + "&"; } } return reslut; }
函数调用方法
formdata = undatakey($('#form').serialize(),'name');
上面的方法是jq删除serialize()方法中的某个值,我们也或以参考上面的示例,来写一个修改serialize()方法中某个值的函数
/** * * @param formdata serialize()获取的数据 * @param name 要修改name属性 * @param newvalue 新的属性值 * @return reslut 类似 serialize() 获取数据格式的数据 */ function editdatakey(formdata,name,newvalue) { result = ''; for(var i in formdata.split("&")){ var row = formdata.split("&")[i]; var key = row.split("=")[0]; var value = row.split("=")[1]; if(key == name){ result += key + '=' + newvalue + '&'; }else{ result = result + row + "&"; } } return result; }
函数调用
formdata = undatakey($('#form').serialize(),'name','mochu');
把密码md5加密后提交
function pwdmd5(formdata,name) { result = ''; for(var i in formdata.split("&")){ var row = formdata.split("&")[i]; var key = row.split("=")[0]; var value = row.split("=")[1]; if(key == name){ result += key + '=' + md5(value) + '&'; }else{ result = result + row + "&"; } } return result; }
//data:$(form).serialize(), 直接提交 data:pwdmd5($('#form').serialize(),'password'), 加密后提交