채택완료

체크박스 제이쿼리 each 질문..

2018-01-10 (수) 11:35:00 1,876

<input type="checkbox" name="aa[]" value="1">

<input type="checkbox" name="aa[]" value="2">

체크박스 누를떄 체크드 된것

alert으로 value값을 찍고싶은데요..

예를들면 value 1을 누르면 alert 1이 되고

두개 다 누르면 alert(1,2) 

쉼표가 붙게하고싶어요ㅠ

|

답변 3개

채택된 답변
+20 포인트

약간 늦었네요. 쉼표까지 붙여서 찍으려면 아래처럼..

Copy
<input type="checkbox" name="aa[]" value="1" class="tchk">
<input type="checkbox" name="aa[]" value="2" class="tchk">
<script>
 var $chks = $('.tchk');
 $chks.click(function() {
     var checked_values = [];
     $chks.each(function(idx, ele) {
         if(ele.checked) {
             checked_values.push(ele.value);
         }
     });
     alert('checked values : ' + checked_values.join(','));
 });
</script>

@whitecatz 님 말씀처럼, map() 을 사용할 수 도 있겠네요.. 풀 소스로 하면..

Copy
<input type="checkbox" name="aa[]" value="1" class="tchk">
 <input type="checkbox" name="aa[]" value="2" class="tchk">
 <script>
 var $chks = $('.tchk');
 $chks.click(function() {
     var checked_values = $chks.map(function(idx, ele) {

                if(ele.checked) return ele.value;

     }).get();
     alert('checked value : ' + checked_values.join(','));
 });
 </script>

굳이 더 간단히 표현하자면.. 아래처럼 하실 수 도 있습니다.

Copy
<script>
 $('.tchk').click(() => {
     var checked_values = $('.tchk:checked').map((idx, ele) => ele.value).get();
     alert('checked value : ' + checked_values.join(','));
 });
 </script>

동하아빠님의 코드를 인용해서.

onclick시 아래와 같이 하시면 좀 더 편합니다.

Copy
var seq = $('.tchk:checked').map(function(){ return $(this).val();}).get().join(",");

   alert('checked values : ' + sql;

관련의 설명은 제 블로그 를 보시면 될 듯 합니다.

답변을 작성하려면 로그인이 필요합니다.