2017-05-05 4 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

使用するif($(この).ATTR() "にチェック")。ここでは:http://stackoverflow.com/questions/2660323/jquery-checkboxes-and-ischecked – tech2017

+0

あなたの迅速な応答ありがとう、ありがとうございました – JSON

+0

https://jsfiddle.net/6v0f9ogq/働くフィドル – tech2017

答えて

1

あなたの問題は、この行である:

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

変更し、その行に:

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

代わりの​​3210あなたが順番に.map()またはArray.prototype.reduce()を使用することができます所望のrを達成するesult。 $( ":checkbox [name = 'advsrc']")と一致する要素を取得するには、.get()を使用することを忘れないでください。

$("#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

どのように私は 'アッド'の値と共にele idを返すことができますか? – JSON

+1

@AhmadAbuMaizarあなたはオブジェクトの配列を構築することがあります:id +値 – gaetanoM

+0

あまりにもgaetanoM ,,,, @ techloveのありがとうありがとう – JSON

関連する問題