λͺ©μ°¨
bootstrap selectpicker multiple js μμ : μ 체 μ νμ΄ μ²΄ν¬λμ΄ μλ μνμμ λ€λ₯Έ μ΅μ μ΄ νλλΌλ μ²΄ν¬ ν΄μ λ κ²½μ° μ 체 μ νλ κ°μ΄ μ²΄ν¬ ν΄μ λκ²
Bootstrapμ μΉ κ°λ°μμ λ§μ΄ μ¬μ©λλ νλ‘ νΈμλ νλ μμν¬λ‘, λ€μν UI μ»΄ν¬λνΈμ μ€νμΌμ μ κ³΅ν΄ κ°λ°μλ€μ΄ μ½κ³ λΉ λ₯΄κ² μΉμ¬μ΄νΈλ₯Ό ꡬμΆν μ μλλ‘ λμ΅λλ€. κ·Έμ€μμλ bootstrap-select
λ κΈ°λ³Έ HTML <select>
μμλ₯Ό λμ± μΈλ ¨λκ² λ³΄μ΄λλ‘ μ»€μ€ν°λ§μ΄μ§νλ λ°μ μ¬μ©λ©λλ€. νΉν selectpicker
λ μ¬μ©μκ° μ¬λ¬ κ°μ μ΅μ
μ μ νν μ μλ λ©ν° μ
λ νΈ(dropdown) κΈ°λ₯μ μ 곡ν©λλ€. κ·Έλ¬λ μ΄ λ©ν° μ
λ νΈ κΈ°λ₯μ μ¬μ©ν λ, "μ 체 μ ν(Select All)" μ΅μ
κ³Ό κ΄λ ¨λ κΈ°λ₯μ ꡬννλ κ³Όμ μμ κ°λ°μλ€μ μ’
μ’
λ€μν μꡬμ¬νμ λ§κ² 컀μ€ν°λ§μ΄μ§ν΄μΌ νλ μν©μ μ§λ©΄νκ² λ©λλ€.
μ΄λ² κΈμμλ bootstrap-selectpicker
λ₯Ό μ¬μ©νμ¬ λ©ν° μ
λ νΈ κΈ°λ₯μ ꡬνν λ, "μ 체 μ ν" μ΅μ
μ΄ μ νλ μνμμ λ€λ₯Έ μ΅μ
μ΄ νλλΌλ ν΄μ λ κ²½μ°, "μ 체 μ ν" μ΅μ
λ ν¨κ» ν΄μ λλλ‘ νλ λ°©λ²μ λν΄ μ€λͺ
λλ¦¬κ² μ΅λλ€.
λ¬Έμ μ€λͺ
κΈ°λ³Έμ μΌλ‘ bootstrap-select
λΌμ΄λΈλ¬λ¦¬μμ "μ 체 μ ν" μ΅μ
μ λͺ¨λ νλͺ©μ μ ννκ±°λ ν΄μ νλ μ©λλ‘ μ¬μ©λ©λλ€. νμ§λ§ μ€λ¬΄μμλ "μ 체 μ ν"μ΄ μ²΄ν¬λ μνμμ κ°λ³ νλͺ©μ μ ν ν΄μ ν λ, "μ 체 μ ν"λ μλμΌλ‘ ν΄μ λκΈΈ μνλ κ²½μ°κ° μ’
μ’
μμ΅λλ€. μ΄ κΈ°λ₯μ ꡬννκΈ° μν΄μλ μΆκ°μ μΈ JavaScript μ½λλ₯Ό ν΅ν΄ λ‘μ§μ μμ ν΄μΌ ν©λλ€.
μλ₯Ό λ€μ΄, μ¬μ©μκ° "μ 체 μ ν"μ ν΄λ¦νμ¬ λͺ¨λ νλͺ©μ μ ννλ€κ³ κ°μ ν΄ λ΄ μλ€. μ΄ν νΉμ νλͺ© νλλ₯Ό μ ν ν΄μ νλ©΄, "μ 체 μ ν" λν μλμΌλ‘ ν΄μ λμ΄μΌ νλ κ²μ΄ μ΄λ² κΈμ λͺ©νμ λλ€.
JavaScriptλ₯Ό μ΄μ©ν λ¬Έμ ν΄κ²°
λ¨Όμ , μ΄λ¬ν λμμ ꡬννκΈ° μν΄μλ bootstrap-select
μ κΈ°λ³Έ κΈ°λ₯μ JavaScriptλ₯Ό νμ©ν 컀μ€ν°λ§μ΄μ§μ΄ νμν©λλ€. JavaScript μ½λλ₯Ό μΆκ°νμ¬ κ°λ³ νλͺ©μ μ ν μνλ₯Ό κ°μ§νκ³ , "μ 체 μ ν" νλͺ©μ μ²΄ν¬ μνλ₯Ό μ μ ν μ
λ°μ΄νΈνλ λ°©μμΌλ‘ ꡬνν μ μμ΅λλ€.
1. HTML μ½λ
μ°μ , κΈ°λ³Έμ μΈ bootstrap-select
HTML μ½λλ₯Ό μ€λΉν΄μΌ ν©λλ€. μ¬κΈ°μ "μ 체 μ ν" μ΅μ
μ μΆκ°νμ¬ μ¬μ©μμκ² λͺ¨λ νλͺ©μ μ νν μ μλ κΈ°λ₯μ μ 곡ν©λλ€.
<select id="mySelect" class="selectpicker" multiple data-actions-box="true">
<option value="select-all">μ 체 μ ν</option>
<option value="option1">μ΅μ
1</option>
<option value="option2">μ΅μ
2</option>
<option value="option3">μ΅μ
3</option>
</select>
μ΄ HTML μ½λλ κ°λ¨ν λ©ν° μ λ νΈ λλ‘λ€μ΄μ μ μνλ©°, "μ 체 μ ν" μ΅μ μ ν¬ν¨νκ³ μμ΅λλ€. μ΄μ μ΄ λλ‘λ€μ΄μ λμμ μνλ λλ‘ μμ νκΈ° μν΄ JavaScriptλ₯Ό μΆκ°ν΄μΌ ν©λλ€.
2. JavaScript μ½λ
λ€μμΌλ‘, JavaScriptλ₯Ό μ΄μ©ν΄ "μ 체 μ ν" μ΅μ κ³Ό κ°λ³ νλͺ© κ°μ μνΈμμ©μ μ μ΄νλ μ½λλ₯Ό μμ±ν©λλ€.
$(document).ready(function () {
$('#mySelect').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {
var selectedOptions = $(this).val();
var selectAllValue = 'select-all';
// "μ 체 μ ν"μ΄ μ²΄ν¬λ μνμμ λ€λ₯Έ μ΅μ
μ΄ μ ν ν΄μ λ κ²½μ°
if (clickedIndex !== null && selectedOptions !== null && selectedOptions.indexOf(selectAllValue) !== -1) {
if (!isSelected && clickedIndex !== 0) {
// κ°λ³ νλͺ©μ΄ μ ν ν΄μ λ κ²½μ° "μ 체 μ ν"μ μ²΄ν¬ ν΄μ
$(this).find('option[value="' + selectAllValue + '"]').prop('selected', false);
$(this).selectpicker('refresh');
}
}
// "μ 체 μ ν"μ΄ ν΄λ¦λ κ²½μ°
if (clickedIndex === 0) {
if (isSelected) {
// λͺ¨λ μ΅μ
μ ν
$(this).selectpicker('selectAll');
} else {
// λͺ¨λ μ΅μ
ν΄μ
$(this).selectpicker('deselectAll');
}
}
});
});
μ μ½λμμλ changed.bs.select
μ΄λ²€νΈλ₯Ό νμ©ν΄ selectpicker
μ μ ν μνκ° λ³κ²½λ λλ§λ€ ν΄λΉ λ‘μ§μ΄ μ€νλλλ‘ μ€μ νμ΅λλ€. clickedIndex
λ μ¬μ©μκ° ν΄λ¦ν νλͺ©μ μΈλ±μ€λ₯Ό λνλ΄λ©°, isSelected
λ ν΄λΉ νλͺ©μ΄ μ νλμλμ§ μ¬λΆλ₯Ό λνλ
λλ€.
μ΄ λ‘μ§μ ν΅μ¬μ μ¬μ©μκ° κ°λ³ νλͺ©μ ν΄μ ν λ, "μ 체 μ ν"μ΄ μ νλ μνλΌλ©΄ "μ 체 μ ν" λν μλμΌλ‘ ν΄μ λλλ‘ νλ λΆλΆμ λλ€. λν, μ¬μ©μκ° "μ 체 μ ν"μ ν΄λ¦νμ λλ λͺ¨λ νλͺ©μ΄ μ νλκ±°λ ν΄μ λλλ‘ μ²λ¦¬νκ³ μμ΅λλ€.
κ²°λ‘
μ΄λ² κΈμμλ bootstrap-selectpicker
λ₯Ό νμ©ν΄ λ©ν° μ
λ νΈ λλ‘λ€μ΄μμ "μ 체 μ ν" μ΅μ
μ ν΄λ¦ν ν, κ°λ³ νλͺ©μ μ ν ν΄μ ν λ "μ 체 μ ν" λν μλμΌλ‘ ν΄μ λλλ‘ νλ λ°©λ²μ μμ보μμ΅λλ€. μ΄ λ°©λ²μ μ€λ¬΄μμ λ§€μ° μ μ©νλ©°, JavaScriptλ₯Ό νμ©ν΄ λΉκ΅μ κ°λ¨νκ² κ΅¬νν μ μμ΅λλ€. νΉν, μ¬μ©μ κ²½νμ κ°μ νκ³ μ νλ λ€μν μΉ νλ‘μ νΈμμ μ΄μ κ°μ κΈ°λ₯μ΄ νμμ μΌ μ μμ΅λλ€.
μ΄μ μ¬λ¬λΆμ νλ‘μ νΈμμλ μ΄ κΈ°λ₯μ μ μ©ν΄λ³΄μΈμ. μμ λ³κ²½μ΄μ§λ§ μ¬μ©μμκ²λ ν° μ°¨μ΄λ₯Ό λ§λ€μ΄ μ€ μ μμ΅λλ€.
ν€μλ: bootstrap selectpicker, μ 체 μ ν ν΄μ , JavaScript, λ©ν° μ λ νΈ, selectpicker μμ , bootstrap, μΉ κ°λ°, λλ‘λ€μ΄, μ¬μ©μ κ²½ν, νλ‘ νΈμλ
λκΈ