2010-07-20 7 views
0

asp.net을 사용하여 여러 체크 박스를 생성합니다. 이름이 pdf * 인 모든 체크 박스를 테스트하여 5 개가 넘는 지 확인한 다음 해당 번호로 경고하는 자바 스크립트 솔루션을 찾으십시오.Javascript 체크 된 입력 유형 체크 박스의 최대 개수

다른 체크 박스가 있습니다. pdf *라는 이름을 쓰지 않는 다른 체크 박스가 있습니다.

미리 감사드립니다. 여기

내 checkboxs의 예입니다 : 당신이 jQuery를 사용하는 일이 있다면

<td><input type="checkbox" name="pdf14" value="2250"></td> 

<td><input type="checkbox" name="pdf15" value="2251"></td> 

<td><input type="checkbox" name="pdf16" value="2252"></td> 

<td><input type="checkbox" name="print" value="2253"></td> 

< <

답변

1
var inputs = document.getElementsByTagName("input"); 
var numSelected = 0; 
var current; 

for (var i=inputs.length;i--;) { 
    current = inputs[i]; 

    if (current.type.toLowerCase() == "checkbox" && current.checked && current.name.indexOf("pdf") == 0) { 
     current++; 
    }; 
}; 

if (current > 5) { 
    alert("You've got " + current + " selected! :("); 
} 

, 그것은 것 쉽게로

var selectedPdfCheckboxes = $('input:checkbox[name^=pdf]'); 

if (selectedPdfCheckboxes.length > 5) { 
    alert("You've got " + selectedPdfCheckboxes.length + " selected! :("); 
} 

편집 :

내가 사용했던 jQuery 선택기 (^=)는 "start with"로 읽으므로 * 해당 항목이 필요하지 않습니다.

jQuery 코드는 배치 될 때마다 실행되지만, 선택하는 요소가 DOM에 있는지 확인하기 위해 document.ready()보다 빨리 실행해야합니다. document.ready 안에 배치하면 문서 준비 이벤트가 시작되는 즉시 실행됩니다. 양식 제출과 같은 다른 이벤트에 대한 이벤트 처리기 내에 코드를 배치 할 수 있습니다.

$(document).ready(function() { 
    $("#aForm").bind('submit', function (e) { 
     var selectedPdfCheckboxes = $('input:checkbox[name^=pdf]'); 

     if (selectedPdfCheckboxes.length > 5) { 
      alert("You've got " + selectedPdfCheckboxes.length + " selected! :("); 

      e.preventDefault();   
     } 
    }); 
}); 
+0

멋진데 내 페이지에도 있지만 작동하지 않는 것 같습니다. jQuery 솔루션을 시도하고있다. pdf *를 추가해야합니까? jQuery의 와일드 카드인가? –

+0

이것이 jQuery없이 작동하는지 궁금합니다. ... var els = document.querySelectorAll ('input [name^= pdf]] [type = "checkbox"] : checked'); if (els && els.length> 5) { } ... –

+0

@ r. 웹 페이지 오류 세부 정보 사용자 에이전트 : Mozilla/4.0 (MSIE 8.0, Windows NT 6.1, WOW64, Trident/4.0, Mozilla/4.0 (MSIE 6.0, Windows NT 5.1, SV1)), SLCC2 .NET CLR 2.0.50727, .NET CLR 3.5.30729, .NET CLR 3.0.30729, InfoPath.3, Media Center PC 6.0, .NET4.0C, .NET4.0E, MS-RTC LM 8) 타임 스탬프 : Tue, 20 Jul 2010 17:59:34 UTC 메시지 : 인수가 잘못되었습니다. 줄 : 11 문자 : 1 코드 : 0 –

관련 문제