私は動的に作成されるhtmlテーブルを持っています。各行にチェックボックスを追加する一度に複数のチェックボックスを選択するにはどうすればよいですか?
$.each(data, function(id, value) {
rows.push('<tr><td><input type="checkbox" autocomplete="off" class="chkbox" name="chkbox" value="'+value.site+':'+value.client+'"></td><td>' + id + '</td><td>' + value.machine + '</td><td>' + value.state + '</td><td>' + value.date_processed + '</td><td><button type="button" onclick="resetSite(\''+ value.site+'\',\''+value.client+'\')">Reset</td></tr>');
});
私は一度に複数の行を選択し、バックエンドサービスに値をPOSTする必要があります。 現在、JavaScriptの機能は次のとおりです。
$(document).on('change','.chkbox',function() {
var sites = [];
var value = $(this).val();
var res = value.split(":");
$.each($("input[class='chkbox']:checked"), function(){
sites.push(res[0]);
});
alert("sites are: " + sites.join(", "));
$.ajax({
type: "POST",
url: "http://localhost:8080/cache/setProcessing?site="+res[0]+"&client="+res[1],
/*data: {
chkbox: value
},*/
error : function(xhr, textStatus, errorThrown) {
alert("Failed. Error : " + errorThrown);
}
});
});
上記の機能では、複数の行を選択すると、アラートボックスに同じサイトが複数回表示されます。 どうすればこの問題を解決できますか?
...チェックされたすべてのチェックボックスを知っているし、そこに対応する値を取得するために
each function
内value
とres
を置く必要があります私はこの問題は、この 'sites.push(RES [0])だと思います。 'それでは常に' res [0] 'の値をプッシュするだけです.. –このres [0]は何ですか?常に常に同じ値をプッシュします。 – Se0ng11
@ShadowFiendいいえ、resには「+ value.site +」という結合値が含まれます: '+ value.client」。最初の配列[0]の値を分割して取得します。 – Ratha