【问题标题】:Cannot get checkboxes after append追加后无法获取复选框
【发布时间】:2013-09-11 06:20:03
【问题描述】:

我已经制作了一个动态添加复选框的脚本。它的工作原理是这样的:

   $.ajax({
    type: "POST",
    async:false,
    url: base_url+"rapportage/get/leerlingen/coach/"+coach_id+"/",
    success: function(data){
      $.each($.parseJSON(data), function(i,item)
      { 
        $('.select-leerlingen ul').append('<li><input type="checkbox" class="leerling" name="leerling" value="'+item.id+'"> '+item.voornaam+' '+item.tussenvoegsel+' '+item.achternaam+'</li>');    
      });
    }}); 

执行此操作后,我尝试为这些复选框编制索引:

$('#submit').click( function(event) {

    var values_data = $('input:checkbox:checked.data').map(function () {
        return this.value;
    }).get();

    var values_leerlingen = $('input:checkbox:checked.leerling').map(function () {
        return this.value;
    }).get();       

    // Met AJAX naar de database doorvoeren
    $.ajax({
        type: "POST",
        async:false,
        url: base_url+"rapportage/saveForSession/",
        data: {data:values_data, leerlingen:values_leerlingen}
    });     
}); 

有时它可以正常工作。但是在许多情况下,variabele:values_leerlingen在检查复选框时为空。无法再找到动态添加的复选框或类似的东西。

有人知道我做错了什么吗?谢谢!

【问题讨论】:

  • 不要使用async: false
  • 在此操作之后”是什么意思?你到底把那个代码放在哪里了?请注意,附加的复选框最初都不是:cecked
  • 我添加了一些上下文。我需要在提交之前检查数组。在后端,数组被添加到 PHP 会话中。

标签: javascript jquery ajax checkbox append


【解决方案1】:

基于 cmets 编辑我的答案抱歉 .live() 已从新 jQuery 中删除 你可以使用'on'

【讨论】:

  • Live 根据您自己的链接已弃用。 =)
  • .live() 已弃用
  • 它也用于事件处理程序绑定,这里似乎不相关。
【解决方案2】:

尝试:

$(document).on('click','#submit', function(event) {

var values_data = $('input:checkbox:checked.data').map(function () {
    return this.value;
}).get();

var values_leerlingen = $('input:checkbox:checked.leerling').map(function () {
    return this.value;
}).get();       

// Met AJAX naar de database doorvoeren
$.ajax({
    type: "POST",
    async:false,
    url: base_url+"rapportage/saveForSession/",
    data: {data:values_data, leerlingen:values_leerlingen}
});     
}); 

【讨论】:

  • 你能详细说明你的理由吗?你不想要$.each之外的“索引”功能吗?我认为你不需要为添加的每个复选框重新索引所有内容。
  • 感谢您的评论。但我需要这个请求之外的数组。我在帖子中添加了一些上下文。
  • 更新了我的评论,您需要将 id 委托给它,因为它不在 DOM 中的 DOM 就绪
  • 抱歉,该解决方案不起作用。 #submit 已触发,但 values_leerlingen 数组仍为空。
猜你喜欢
  • 1970-01-01
  • 2015-10-07
  • 2012-08-06
  • 2018-02-14
  • 2018-07-30
  • 1970-01-01
  • 2018-09-11
  • 2018-09-10
  • 2020-08-25
相关资源
最近更新 更多