发送通过AJAX更改的元素的值

时间:2015-06-15 16:22:26

标签: javascript ajax checkbox

我希望在值更改时捕获复选框的值,然后通过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只发送已更改的复选框的值?

2 个答案:

答案 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());

现在应该可以了。