본문 바로가기
개발

[javascript] form 값을 get parameter 형식으로 바꿔주는 함수(select-multiple 적용)

by 비손 2010. 10. 5.

이전에 폼 값을 파라미터 형식으로 바꿔주는 함수를 올렸었는데
일반 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,"");
 }

[2011.04.01 추가]
jQuery 함수 중
.serialize() 를 이용하는 방법도 있네요~ [보기]