2016-05-16 180 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