2016-05-16 99 views
0

我想有输入复选框列表(将由PHP在以后的时间中产生),但对于现在的内容动态更新DIV信息是静态的。因此,根据输入,能够选择一名员工,根据选择填充我的div,并在取消选中输入时删除同一名员工。我还需要能够选择多个员工,而不只是一个。目前它更新与员工的股利,但我不能删除该员工。我也一次只能选择一名员工(需要能够一次点击尽可能多的员工)。基于复选框输入值

这里是我的了:

HTML

<div id="employee-list"> 
</div> 

<div class="small-2 columns bord-right3 check-box"> 
<input type="checkbox" class="boxid" value="Joe Smith" name="employees"> 
<label class="checkbox-select">Select</label> 
</div> 
<div class="small-10 columns bord-right3"> 
    <span class="employee-name">Joe Smith</span> 
</div> 

<div class="small-2 columns bord-right3 check-box"> 
<input type="checkbox" class="boxid" value="John Smith" name="employees"> 
<label class="checkbox-select">Select</label> 
</div> 
<div class="small-10 columns bord-right3"> 
    <span class="employee-name">John Smith</span> 
</div> 

JS

$('input[name="employees"]').change(function() { 

var inputVal = $('input[name="employees"]:checked').map(function() { 
    return this.value; 
}).get(); 
console.log(inputVal); 

if ($(this).prop('checked')) { //which checkbox was checked 

    if ($(this).val() == inputVal) { 
     $("#employee-list").append('<span class="employee-name2_1"><a href="#" class="item">X</a> ' + inputVal + '</span>'); 
    } 

} else { 
    $('.li_'+$(this).val()).remove(); 
    console.log('item removed'); 
} 

}); 

任何帮助,不胜感激!请让我知道我是否遗漏了任何东西。

+0

和问题是什么?它不工作? –

+0

@TiagoFabre它不会从div中删除所述项目,它会将控制台记录下来并显示它已被删除,但不会从实际的div中删除。也不允许我选择多个人来更新div。 – gbya

回答

0

如果我理解正确的目标,你的一些代码的变化监听器里的是不必要的。您不必使用map来获取复选框的值,$(this).val()就足够了。从那里一个if/else可以根据需要添加或删除信息。

Fiddle

$('input[name="employees"]').change(function() { 
    var inputVal = $(this).val(); 
    var className = inputVal.replace(/ /g, '_'); 

    if ($(this).prop('checked')) { //which checkbox was checked 
    $("#employee-list").append('<span class="span_' + className + '"><a href="#" class="item">X</a> ' + inputVal + '</span>'); 
    } else { 
    $('.span_'+className).remove(); 
    console.log('item removed'); 
    } 
}); 
+0

这正是我想要实现的。我用适当的div id更新了我的问题(这是第一个div,但带有错误的id)。谢谢!这是最有帮助的。你能解释一下你的'('/'g''''')部分在做什么吗?我想了解那里发生了什么。再一次感谢你。 – gbya

+0

这只是用下划线替换人名中的任何空格,所以我可以稍后将其用作类名来删除该跨度。 '/ /'匹配空格,'g'表示“全局”(全部空格)。 ''_''是空格应该被替换(下划线)。如果我试图用空格作为类名,每个名字都是它自己的类。 – IrkenInvader

+0

谢谢你的细节。再次感谢您的回应,但不幸的是,由于缺乏声誉,我无法赞成您的回复,但这是我的问题的解决方案。最有用的。 – gbya