'Length'에 해당되는 글 1

  1. 2009.12.21 라디오버튼(radio) 의 확인
IT_Expert/Tag-Script | Posted by 낫기법필 2009. 12. 21. 13:57

라디오버튼(radio) 의 확인

HTML외 asp, php,jsp 등등의 웹 언어의 경우에는 흔히들 javascript를 사용한다.
하지만 이 javascript를 사용한다는 것은 여간 깐깐하게 아니다... 왜냐하면 마땅한 툴도 없기 때문이다.
그 중에서 라디오 버튼에 대해서 알아볼 것인데.. 작업을 하다보면 흔히들 라디오버튼의 체크 여부를 검증하던가..
체크된 값을 가져오던가 하는 등의 작업을 많이 하는데...
그에 관련된 내용을 스크랩하였으니 참고하여 보자.

스크랩을 한 이유는 아래의 내용중에서 undefined 라고 띄어지는 경우를 다양한 케이스에서 볼 수 있다.
아래의 경우는 라디오버튼의 갯수를 체크하던 중 생긴 오류 아닌 오류인데...
그냥 문자열로 undefined 로 비교를 하여도 되기는 하나.. 안되는 경우도 많이 있기 때문에...
typeof 라는 키워드를 사용함으로써 명확하게 undefined 라는 형식을 캐취할 수 있다.
나머지 내용은 흔히들 하는 것이기 때문에 특별한 사항은 없으니 그냥 라디오 버튼의 활용이라고 생각하면서 보도록 하자.

================================================================================================


설문의 문항이 0번부터 시작(name이 Ans0)한다면 다음과 같이 처리합니다.

 

function 설문하기함수() {  //설문하기 버튼을 누른 경우
  for (var i=0; i<문제수; i++) {  //문제수만큼 반복
    if (!check(i)) {  //check함수를 호출하여 설문의 답이 선택되지 않은 경우이면
      return false;
    }
  }
  return true;  //return 혹은 다음 프로세스 진행로직을 추가
}

function check(idx) {  //설문문항의 번호를 받아서 답이 없으면 false를 return
  var tmp=eval("sulmoon.Ans"+idx);
  if (tmp) {
    if (typeof(tmp.length)=="undefined") {  //선택가능한 설문답변이 한개인 경우
      if (!tmp.checked) {  //선택되지 않은 경우 false를 return
        alert("글을 선택하세요");
        return false;
      } else {
        return true;  //답변이 선택된 경우 true를 return
      }
    } else {  //선택가능한 설문답변이 여러개인 경우
      for (var i=0; i<tmp.length; i++) {
        if (tmp[i].checked) {  //선택된 답변이 있으면 true를 return
          return true;
        }
      }
      alert("글을 선택하세요");  //선택된 답변이 없으면 false를 return
      return false;
    }
  } else {  //eval("sulmoon.Ans"+idx)가 존재하지 않는 경우
    alert("해당 설문문항이 존재하지 않습니다");
    return false;
  }
}


[출처] http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040202&docId=69750489&qb=amF2YXNjcmlwdCDrnbzrlJTsmKTrsoTtirwgdW5kZWZpbmVk&enc=utf8&section=kin&rank=1&sort=0&spq=0&pid=fyJOrsoi5URssbeShJosss--474223&sid=Sy7CkdysLksAAHO4D3s