2014-06-23 1 views
0

성별에 대한 두 개의 체크 박스가 있습니다. 남성과 여성. 적어도 하나의 성별에 대한 유효성을 어떻게 설정해야합니까? 월요일부터 일요일까지 일주일의 세트도 있습니다. 또한 적어도 하나의 선택 일입니다. 여기 내 JQuery와맞춤 유효성 하나 이상의 체크 박스가 선택되었습니다 jquery

$(document).ready(function(){ 
      // --- set required message --- // 

       var msg=""; 
       var elements = document.getElementsByTagName("INPUT"); 

       for (var i = 0; i < elements.length; i++) { 
        elements[i].oninvalid =function(e) { 
         if (!e.target.validity.valid) { 
         switch(e.target.name){        
          case 'gender' : 
           e.target.setCustomValidity("Please select at least one gender.");break;        
          case 'days' : 
           e.target.setCustomValidity("Please select at least one day.");break; 
          case 'location' : 
           e.target.setCustomValidity("Please enter a location where the image can be seen.");break; 
         default : e.target.setCustomValidity("");break; 

         } 
         } 
        }; 
        elements[i].oninput = function(e) { 
         e.target.setCustomValidity(msg); 
        }; 
       } 
      }); 



<input type=checkbox name=gender[] required>Male 
<input type=checkbox name=gender[] required>Female 

<input type=checkbox name=days[] required>Monday 
<input type=checkbox name=days[] required>Tuesday 
<input type=checkbox name=days[] required>Wednesday 
<input type=checkbox name=days[] required>Thursday 
<input type=checkbox name=days[] required>Friday 
<input type=checkbox name=days[] required>Saturday 
<input type=checkbox name=days[] required>Sunday 
+0

지금은 알지만 누가 알겠습니까?]] – webkit

+0

@webkit 예 알아요. 하지만 내 웹에. 수컷 만 볼 수 있고 암컷 만 볼 수있는 곳이 있습니다. 또는 둘 다 될 수 있습니다. 그래서 나는 선택적으로 두 남녀가 될 수 있도록 체크 박스를 만들었습니다. 하루를 볼 수있는 날과 동일 – Vincent

답변

1

대신 필요한 HTML5 및 유효성을 사용하는 .. 당신은이 예제를 보면

if($("input[name='gender[]']").is(":checked").length < 1){ 
// no gender selected.. 
var errmsg = $("<div class='error'>Please select at least one gender</div>"); 

} 
if($("input[name='days[]']").is(":checked").length < 1){ 
// no day selected.. 
var errmsg = $("<div class='error'>Please select at least one day</div>"); 
} 

$("containerelement").append(errmsg); 
+0

나는이 메시지를 html5 에서처럼 설정할 수 있습니까? – Vincent

+1

확실히, 일반 오류 텍스트를 사용하여 원하는 요소에 삽입하십시오. – webkit

+0

괜찮습니다. – Vincent

1
if($("input[name='gender[]']:checked").length > 0){ 

} 

는 이름에 []하지만 좋아하는 경우가 트릭, 확실하지를해야합니다.

기본적으로 jquery는 성별 []이 (가) 선택된 모든 입력을 가져 오도록 지시합니다. 길이를 확인하기 만하면됩니다.

1

당신은 JQuery와에 :checked을 사용할 수 있습니다 .. 체크 박스가 체크되어 있는지 확인하기 위해 jQuery를 사용할 수 Jquery API documentation :checked

var n = $("input:checked").length; 이를 통해 jquery의 클래스 선택기를 사용하여 유효성을 검사하는 경우에 따라 입력을 적용해야 할 입력 수를 확인할 수 있습니다.

관련 문제