이전에 폼 값을 파라미터 형식으로 바꿔주는 함수를 올렸었는데
일반 select 폼은 잘 전송되지만, select-multiple 폼은 값이 하나밖에 전송되지 않는 문제가 있어서 수정했습니다.
체크박스, 라디오박스, 셀렉트박스 모두 잘 됩니다~
function GenParamsFromForm(f) {
var intCnt = f.length;
var regExp = /[&]/;
var returnText = "";
for (var y=0; y<intCnt; y++) {
if(f[y].name != "" && f[y].type == "select-multiple") {
var i;
for(i=0; i<f[y].length; i++) {
if(f[y][i].selected)
returnText += "&" + f[y].name + "=" + encodeURI(f[y][i].value);
}
} else if (f[y].name != "" & !((f[y].type=="radio" | f[y].type=="checkbox") ^ f[y].checked==true)) {
returnText += "&" + f[y].name + "=" + encodeURI(f[y].value);
}
}
return returnText.replace(regExp,"");
}
var intCnt = f.length;
var regExp = /[&]/;
var returnText = "";
for (var y=0; y<intCnt; y++) {
if(f[y].name != "" && f[y].type == "select-multiple") {
var i;
for(i=0; i<f[y].length; i++) {
if(f[y][i].selected)
returnText += "&" + f[y].name + "=" + encodeURI(f[y][i].value);
}
} else if (f[y].name != "" & !((f[y].type=="radio" | f[y].type=="checkbox") ^ f[y].checked==true)) {
returnText += "&" + f[y].name + "=" + encodeURI(f[y].value);
}
}
return returnText.replace(regExp,"");
}
[2011.04.01 추가]
jQuery 함수 중
.serialize() 를 이용하는 방법도 있네요~ [보기]