2014-07-07 2 views
0

id가 여러 개인 라디오 버튼이있는 JSP 페이지에서 작업하고 있습니다. 라디오 버튼 중 아무 것도 이전 페이지의 응답에 따라 다릅니다. 사용자는 모든 라디오 버튼에 대한 대답을 선택해야합니다. 즉 사용자는 모든 라디오 버튼 ans1, ans2, ans3 ...에 대한 응답을 선택해야합니다. 유효성 확인을 위해 아래의 버튼 제출 이벤트에 대한 자바 스크립트 코드를 작성하고 사용자가 모든 답변에 응답했는지 확인하십시오.JavaScript에서 라디오 버튼이 선택된 경우 문제가 발생했습니다.

function beforeSubmit(){ 
    var obj = document.quizcreen; 
    var qCount = obj.totQuesHidden.value; 
    for (var i=1; i<=qCount; i++){ 
     if(document.getElementById("ans"+i).checked){ 
      // checked 
     }else{ 
      alert("Please select ateleast one option"); // unchecked 
      return false; 
     } 
    } 
    obj.submit(); 
    return true; 
} 

위의 코드에 위의 코드가 작동하지 않습니다. 모든 라디오 단추를 선택하지 않으면 양식을 제출해서는 안됩니다. 제발 도와 줘, 나는 그것이 매우 간단하고 일반적인 문제라는 것을 알고 있지만, 나는 그것을 알아낼 수 없다. 미리 감사드립니다. 당신은 당신의 루프에 return true 문이

<form name="quizcreen" id="quizcreen" method="post" action="QuizResult.jsp" onsubmit = "return beforeSubmit();"> 
+0

루프 것 체크 라디오를 만나고 나서 '진실로 돌아 간다', 그 상황에서 당신은 무엇을 기대하고 있었습니까? –

+0

체크 된 루프에서 true를 반환하지 않습니다. 나는 무언가를 시도하고 있었고, 그래서 그것을 거기에 두었습니다. – Sid

+0

디버깅 코드를 제거하고 실제 코드를 추가했습니다. – Sid

답변

0

내 시나리오를 처리 할 수있는 더 좋은 방법을 발견, 그래서 귀하의 정보에 대한 내 코드를 공유하고 확인 :

function beforeSubmit() { 
     var obj = document.quizcreen; 
     var allChecked = true; 
     $("input:radio").each(function() { 
      var name = $(this).attr("name"); 
      if ($("input:radio[name=" + name + "]:checked").length == 0) { 
       allChecked = false; 
      } 
     }); 
     if (!allChecked) { 
      alert("Please answer all the questions."); // unchecked 
      return false; 
     } 
     obj.submit(); 
     return true; 
    } 
3

: 또한 다음

의 형식은 작업입니다. 따라서 첫 번째 라디오 버튼을 선택하면 다른 라디오 버튼을 확인하지 않습니다.

function beforeSubmit(){ 
    var obj = document.quizcreen; 
    var qCount = obj.totQuesHidden.value; 
    var allChecked = true; 
    for (var i=1; i<=qCount; i++){ 
     if(! document.getElementById("ans"+i).checked){ 
      allChecked = false; 
     } 
    } 

    if(! allChecked){ 
     alert("Please select ateleast one option"); // unchecked 
     return false 
    } 
    obj.submit(); 
    return true; 
} 
+0

실제로 모든 라디오 버튼을 선택하지는 않았지만 여전히 작동해야하지만 양식이 제출됩니다. – Sid

+0

다음은 양식 액션입니다. onsubmit = "return beforeSubmit()을 제거하면

); " 그렇지 않으면 폼이 자바 스크립트 유효성 검사를받지 못하게됩니다. onsubmit = "return beforeSubmit();"이 있으면 javascript 함수가 두 번 호출되고 경고가 두 번 생성됩니다. 도와 줘서 고마워. – Sid

+0

@Sid는 http://jsfiddle.net/zbxr6/4/에서 작동합니다. 내가 바꾼 것은 qCount뿐입니다. 어쩌면이 값에주의를 기울여 채워지는지 확인하십시오. – Hazaart

-1

문제는 적어도 하나 이상 확인해야합니다.

이 물건

function isRadioChecked() { 
return ($('input[type=radio]:checked').size() > 0); 

을} 할

+0

어딘가에서 jQuery 태그를 보았습니까? –

+0

오! 미안해 내가 가장 짧은 방법이라고 했어. –

관련 문제