2011-04-18 4 views
0

이름이 "rb_Select"인 라디오 버튼 집합이 있습니다.jquery, 라디오 버튼, 유효성 검사 및 색인 문제

리스너 라디오 버튼 하나를 선택했는지 확인하기 위해 간단한 라디오 버튼 검증을 추가했지만, 이제는 내 구문이 제 자바 스크립트 함수가 잘못 작성된 것입니다.

기본적으로, 내가 확인하고있는 것은 if else 문에서 true/false 값입니다. 그러나 라디오 버튼을 선택하지 않으면 다중 false 값을 얻게된다는 것을 깨달았습니다. 8 개의 라디오 버튼이 있다고 말하면 디버깅하는 동안 8 개의 경고창이 표시됩니다.

IF는 1 개의 라디오 버튼을 선택한 다음 하나는 참이고 7은 거짓입니다. 그러나 그것은 내가 원하는 것이 아닙니다.

내가 원하는 것은 1이고 거짓이 아닙니다. 구문이 무엇인지 잘 모르겠습니다. 나는 분명히 뭔가 잘못하고있다. 당신은 라디오가 선택한 있는지 확인하기 위해 길이 방법으로 선택 input[type='radio'][name='rb_Select']:checked을 사용할 수 있습니다

var $ = jQuery; 

$("#pError").hide(); 
$("#LocInfo").hide(); 

$(".submit-button").click(function() { 

    var rb = document.getElementsByName('rb_Select'); 

    for (var i = 0; i < rb.length; i++) 
    { 
     if (rb[i].checked == true) 
     { 

     alert('Value=' + rb[i].value + 'TRUE'); 
     var myURL = rb[i].value; 
     window.open(myURL); 


     } else { 

     alert('Value=' + rb[i].value + 'False'); 

     $("#pError").fadeIn(); 
     var fade_out = function() { $("#pError").fadeOut(); } 
      setTimeout(fade_out, 3000); 
     }; 

    } 
}); 

답변

1

:

다음은 제출 기능입니다.

이 시도 : 그것에 대해

var $ = jQuery; 

    $("#pError").hide(); 
    $("#LocInfo").hide(); 

    $(".submit-button").click(function() { 

     var radios = $("input[type='radio'][name='rb_Select']:checked"); 
     if(radios.length > 0){ 
      alert('Value=' + radios.val() + 'TRUE'); 
      window.open(radios.val()); 
     }  else{ 

      alert('Value=' + radios.val()+ 'False'); 

      $("#pError").fadeIn(); 
      var fade_out = function() { $("#pError").fadeOut(); } 
       setTimeout(fade_out, 3000); 
      }; 
     } 
    }); 
+0

헤이 덕분에 아주 많이. – Robbiegod

+0

모든 것이 하나 개의 라인을 제외하고 스크립트에 중대하다 : 경우 (radios.length은()> 0) { 가 있어야한다 : 경우 (radios.length> 0) { 갖는은() 자바 스크립트 생각하게 그 함수. :) 도움 주셔서 감사합니다. – Robbiegod

+0

@Robbiegod : 오타가 수정되었습니다. – Chandu