2017-05-05 3 views
0

나는 체크 박스의 그룹이 나는 아래의 코드를 작성 배열후 특정 값을 확인하고 체크되지 않은 체크 박스

에서 선택하지 않은 것들에 대한 확인 하나 널 (null)에 대한 특정 값을 게시 할 것을 제어가 하지만 난 항상

$("#bt1").click(function() { 
 
    var checked = [] 
 
    var val = '' 
 
    var $chbx = $("input[name='advsrc']") 
 
    $chbx.each(function() { 
 
    if ($chbx.is(':checked')) { 
 
     val = 'ahmad' 
 
    } else { 
 
     val = 'null' 
 
    } 
 
    checked.push(val); 
 
    }); 
 
    console.log(checked) 
 

 
    return false; 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="bt1" type="button" value="button" /> 
 
<input id="grndsrc" type="checkbox" checked="checked" name="advsrc" /> 
 
<input id="fnamesrc" type="checkbox" name="advsrc" /> 
 
<input id="lnamesrc" type="checkbox" name="advsrc" /> 
 
<input id="dobsrc" type="checkbox" name="advsrc" /> 
 
<input id="telsrc" type="checkbox" name="advsrc" /> 
 
<input id="ssnsrc" type="checkbox" name="advsrc" />

techlove의 대답 @ 자신의 선택 상태에 관계없이 모두 같은 값을 얻을

$("#bt1").click(function() { 
 
    var checked = [] 
 
    var val = '' 
 
    var $chbx = $("input[name='advsrc']") 
 
    $chbx.each(function() { 
 
    if ($(this).attr("checked")) { 
 
     val = 'ahmad' 
 
    } else { 
 
     val = 'null' 
 
    } 
 
    checked.push(val); 
 
    }); 
 
    console.log(checked) 
 

 
    return false; 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="bt1" type="button" value="button" /> 
 

 
<input id="grndsrc" type="checkbox" name="advsrc" /> 
 
<input id="fnamesrc" type="checkbox" name="advsrc" /> 
 
<input id="lnamesrc" type="checkbox" name="advsrc" /> 
 
<input id="dobsrc" type="checkbox" name="advsrc" /> 
 
<input id="telsrc" type="checkbox" name="advsrc" /> 
 
<input id="ssnsrc" type="checkbox" name="advsrc" />

+1

사용하는 경우 ($ (이) .attr() "확인"). 여기에 : http://stackoverflow.com/questions/2660323/jquery-checkboxes-and-ischecked – tech2017

+0

신속한 응답을 보내 주셔서 감사합니다. 작동하지 않았습니다. – JSON

+0

https://jsfiddle.net/6v0f9ogq/ working fiddle – tech2017

답변

1

귀하의 문제는이 라인에 있습니다

if ($chbx.is(':checked')) { 

변경이 라인 :

if ($(this).is(':checked')) {

대신 .each() 당신이 순서 .map() 또는 Array.prototype.reduce()을 사용할 수 있습니다 원하는 r을 달성하기 위해 esult. $ 일치하는 요소를 검색 할 .get()를 사용해야합니다 ("체크 박스 [이름 = 'advsrc']")을.

$("#bt1").click(function() { 
 
    var checked = $(":checkbox[name='advsrc']").map(function(idx, ele) { 
 
     return (ele.checked) ? 'ahmad' : 'null'; 
 
    }).get(); 
 
    console.log(checked); 
 

 
    return false; 
 
}) 
 

 
$("#bt2").click(function() { 
 
    var checked = $(":checkbox[name='advsrc']").get().reduce(function(acc, ele, idx) { 
 
     acc[ele.id || 'noId' + idx] = (ele.checked) ? 'a' : ''; 
 
     return acc; 
 
    }, {}); 
 
    console.log(checked); 
 

 
    return false; 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 

 
<input id="bt1" type="button" value="button" /> 
 
<input id="bt2" type="button" value="buttonNew" /> 
 
<input id="grndsrc" type="checkbox" checked="checked" name="advsrc" /> 
 
<input id="fnamesrc" type="checkbox" name="advsrc" /> 
 
<input id="lnamesrc" type="checkbox" name="advsrc" /> 
 
<input id="dobsrc" type="checkbox" name="advsrc" /> 
 
<input id="telsrc" type="checkbox" name="advsrc" /> 
 
<input id="ssnsrc" type="checkbox" name="advsrc" /> 
 
<input type="checkbox" name="advsrc" />

+0

널 (null)입니다 '아 마드'값과 함께 이드를 어떻게 돌려 보낼 수 있을까요? – JSON

+1

당신은 객체의 배열을 만들 수 있습니다 @AhmadAbuMaizar : ID + 값 – gaetanoM

+0

이 너무 – JSON

관련 문제