【问题标题】:Send value of element that changed through AJAX发送通过 AJAX 更改的元素的值
【发布时间】:2015-06-16 00:46:56
【问题描述】:

我想在值更改时捕获复选框的值,然后通过 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 来捕获和发送值,但它不起作用,可能是因为复选框的名称 ('cb_redir_301') 不是唯一的。

$('#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 只发送已更改的复选框的值呢?

【问题讨论】:

  • 'redir_selector' 来自哪里?我认为这不起作用的主要原因是您的 JQuery 选择器不正确。您可以给他们所有相同的类名并执行类似 $('.someClass').change...
  • 请善待并提供 jsfiddle.net 或在您的帖子中实现 code-sn-p。

标签: javascript ajax checkbox


【解决方案1】:

更快:

var checkboxes = document.querySelectorAll("input[type='checkbox']");
for(var i = 0 ; i < checkboxes.length ; i++) {
    checkboxes[i].addEventListener("change", updateData);
}

【讨论】:

    【解决方案2】:

    刚刚通过以下方式找到了解决方案:

    $("input[type='checkbox']").on("change",function(){
    
    console.log($(this).val());
    

    它现在应该可以工作了。

    肯。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多