我希望在值更改时捕获复选框的值,然后通过Ajax发送它。
我的HTML页面中显示了几百个复选框,所以当一个值发生变化时,我不能简单地发送所有值。我只想发送刚更改的复选框的值。
这是我的HTML代码:
<INPUT type="checkbox" name="cb_redir301" value="post_id_445">
<INPUT type="checkbox" name="cb_redir301" value="post_id_573">
<INPUT type="checkbox" name="cb_redir301" value="post_id_264">
<INPUT type="checkbox" name="cb_redir301" value="post_id_387">
<INPUT type="checkbox" name="cb_redir301" value="post_id_190">
(...)
<INPUT type="checkbox" name="cb_redir301" value="post_id_268">
我尝试使用以下Javascript捕获并发送值,但它不起作用,可能是因为复选框的名称(&#39; cb_redir_301&#39;)不是唯一的。
$('#redir_selector').change(function(evt) {
$.post(ajaxurl, {
action: 'save_backend_assocs',
nonce: $('#ajax_admin_redir_selector_nonce').text(),
cb_redir301: $(this).is(':checked')
}, function(response) {
});
});
});
那么,我怎么能告诉JS只发送已更改的复选框的值?
答案 0 :(得分:1)
更快:
var checkboxes = document.querySelectorAll("input[type='checkbox']");
for(var i = 0 ; i < checkboxes.length ; i++) {
checkboxes[i].addEventListener("change", updateData);
}
答案 1 :(得分:0)
刚刚通过以下方式找到了解决方案:
$("input[type='checkbox']").on("change",function(){
console.log($(this).val());
现在应该可以了。
肯