Checkbox
Checkbox
체크박스는 선택 상태를 표시하는 표준 HTML 입력 요소를 Fomantic UI 스타일로 서식화한 컴포넌트예요. 라디오, 슬라이더, 토글, 인비저블 등 다양한 변형을 지원해요.
출처: 문서
본문
Types
Checkbox
표준 체크박스예요.
Make my profile visible
Radio
체크박스는 라디오 요소로 서식화할 수 있어요. 즉 배타적(exclusive) 옵션이에요.
Radio choice
How often do you use checkboxes?
Once a week
2-3 times a week
Once a day
Twice a day
How often do you use checkboxes?
Once a week
2-3 times a week
Once a day
Twice a day
Slider
체크박스는 현재 선택 상태를 강조하도록 서식화할 수 있어요.
Accept terms and conditions
Outbound Throughput
20 mbps max
10mbps max
5mbps max
Unmetered
Toggle
체크박스는 켜짐/꺼짐 선택을 보여주도록 서식화할 수 있어요.
Subscribe to weekly newsletter
Invisible
인비저블 체크박스는 텍스트나 이미지 전용 체크/라디오 박스를 사용할 수 있게 해줘요. 체크박스의 label 태그를 위해 button, message, segment 같은 다른 컴포넌트를 사용해서 스타일링해요.
Option OneI am a radio checkbox styled as button when clicked
Option TwoI am a radio checkbox styled as message component when clicked
Option ThreeI am a radio checkbox styled as segment when clicked
아이콘, 이모지, 플래그는 label 태그에 image 클래스만 있으면 돼요. 고전적인 ui image도 잘 동작해요.
States
Read-only
체크박스는 읽기 전용으로 만들어 상태를 변경할 수 없게 할 수 있어요.
Read Only
Checked
체크박스는 체크된 상태일 수 있어요.
Active
Indeterminate
체크박스는 중간(indeterminate) 상태일 수 있어요.
Indeterminate
Indeterminate
Disabled
체크박스는 현재 상호작용할 수 없음을 보여줄 수 있어요.
Disabled
Disabled
Variations
Fitted
fitted 체크박스는 라벨을 위한 패딩을 남기지 않아요.
Inverted
inverted 체크박스예요.
Inverted
Inverted
Inverted
Right aligned
체크박스는 라벨의 오른쪽으로 정렬할 수 있어요.
Checkbox
Radio
Slider
Toggle
Size
체크박스는 다양한 크기를 가질 수 있어요.
Checkbox
Radio
Toggle
Slider
Checkbox
Radio
Toggle
Slider
Checkbox
Radio
Toggle
Slider
Checkbox
Radio
Toggle
Slider
Checkbox
Radio
Toggle
Slider
Checkbox
Radio
Toggle
Slider
Checkbox
Radio
Toggle
Slider
Examples
Using Callbacks
체크박스에는 각 상태 변경 행동의 두 가지 버전이 있어요. 호출이 체크박스 콜백을 트리거할지 여부를 결정할 수 있게 해주죠.
Example
Checkbox
Radio
Console
Toggle
Check
Uncheck
Indeterminate
Determinate
Enable
Disable
Set Checked
Set Unchecked
Set Indeterminate
Set Determinate
Set Enabled
Set Disabled
var
$console = $('.callback .console')
;
$('.callback.example .checkbox')
.checkbox()
.first().checkbox({
onChecked: function() {
$console.append('onChecked called');
},
onUnchecked: function() {
$console.append('onUnchecked called');
},
onEnable: function() {
$console.append('onEnable called');
},
onDisable: function() {
$console.append('onDisable called');
},
onDeterminate: function() {
$console.append('onDeterminate called');
},
onIndeterminate: function() {
$console.append('onIndeterminate called');
},
onChange: function() {
$console.append('onChange called');
}
})
;
// bind events to buttons
$('.callback.example .button')
.on('click', function() {
$('.callback .checkbox').checkbox( $(this).data('method') );
})
;
Grouped Checkboxes
중간(indeterminate) 상태는 체크도 언체크도 아닌 값을 나타내는 데 사용할 수 있어요.
Fruits
Apple
Orange
Pear
Vegetables
Lettuce
Carrot
Spinach
$('.list .master.checkbox')
.checkbox({
// check all children
onChecked: function() {
var
$childCheckbox = $(this).closest('.checkbox').siblings('.list').find('.checkbox')
;
$childCheckbox.checkbox('check');
},
// uncheck all children
onUnchecked: function() {
var
$childCheckbox = $(this).closest('.checkbox').siblings('.list').find('.checkbox')
;
$childCheckbox.checkbox('uncheck');
}
})
;
$('.list .child.checkbox')
.checkbox({
// Fire on load to set parent value
fireOnInit : true,
// Change parent state on each child checkbox change
onChange : function() {
var
$listGroup = $(this).closest('.list'),
$parentCheckbox = $listGroup.closest('.item').children('.checkbox'),
$checkbox = $listGroup.find('.checkbox'),
allChecked = true,
allUnchecked = true
;
// check to see if all other siblings are checked or unchecked
$checkbox.each(function() {
if( $(this).checkbox('is checked') ) {
allUnchecked = false;
}
else {
allChecked = false;
}
});
// set parent checkbox state, but don't trigger its onChange callback
if(allChecked) {
$parentCheckbox.checkbox('set checked');
}
else if(allUnchecked) {
$parentCheckbox.checkbox('set unchecked');
}
else {
$parentCheckbox.checkbox('set indeterminate');
}
}
})
;
Checking Conditions
체크박스에는 beforeChecked, beforeUnchecked, beforeDeterminate, beforeIndeterminate 네 가지 새 콜백이 포함돼요. 이 콜백에서 false를 반환하면 입력 값이 업데이트되기 전에 동작이 취소돼요.
Maybe this will work
$('.cancel.example .ui.checkbox')
.checkbox({
beforeChecked: function() {
var
luckyPerson = (Math.random()
One-Way Choices
사용자가 박스를 체크할 수 있지만 언체크할 수 없게 하려면 uncheckable 설정을 사용해요.
$('.state.example .checkbox')
.last()
.checkbox({
uncheckable: false
})
;
Disabled
Read-only
Uncheckable
Attaching Events to other Elements
체크박스는 attach events 행동을 사용해 다른 활성화 요소에 이벤트를 쉽게 연결할 수 있어요. 기본값은 토글링이지만 다른 행동도 사용할 수 있어요.
$('.test.checkbox').checkbox('attach events', '.toggle.button');
$('.test.checkbox').checkbox('attach events', '.check.button', 'check');
$('.test.checkbox').checkbox('attach events', '.uncheck.button', 'uncheck');
Toggle
Check
Uncheck
1
2
3
4
5
6
Initializing
Checkbox
체크박스는 동작하기 위해 Javascript를 요구하지 않아요.
Label
Label
Full Featured Checkboxes
체크박스에 Javascript를 사용하면 라벨이 자동으로 입력 값 변경을 트리거하고 콜백 함수를 제공해요. 또한 indeterminate 같은 일부 상태는 Javascript로만 트리거할 수 있어요.
Label
Label
Linked Labels
라벨을 Javascript 체크박스의 다른 기능 없이 연결만 하면 된다면, 라벨의 for 속성을 입력의 id와 일치시키면 돼요.
Label
Label
Behavior
행동들은 Javascript에서 다음 구문을 사용해 접근할 수 있어요:
.ui.checkbox').checkbox(behavior, argumentOne, argumentTwo...);
- toggle — 체크박스를 현재 상태에서 전환해요.
- check — 체크박스 상태를 체크로 설정해요.
- uncheck — 체크박스 상태를 언체크로 설정해요.
- indeterminate — 중간 상태 체크박스로 설정해요.
- determinate — 결정(determinate) 상태 체크박스로 설정해요.
- enable — 체크박스와의 상호작용을 활성화해요.
- set checked — 콜백 없이 체크박스 상태를 체크로 설정해요.
- set unchecked — 콜백 없이 체크박스 상태를 언체크로 설정해요.
- set indeterminate — 콜백 없이 중간 상태 체크박스로 설정해요.
- set determinate — 콜백 없이 결정 상태 체크박스로 설정해요.
- set enabled — 콜백 없이 체크박스 상호작용을 활성화해요.
- set disabled — 콜백 없이 체크박스 상호작용을 비활성화해요.
- attach events(selector, behavior) — 체크박스 이벤트를 다른 요소에 연결해요.
- is disabled — 요소가 상호작용에 비활성화되었는지 반환해요.
- is enabled — 요소가 상호작용에 활성화되었는지 반환해요.
- is determinate — 요소가 결정 상태인지 반환해요.
- is indeterminate — 요소가 중간 상태인지 반환해요.
- is radio — 요소가 라디오 선택인지 반환해요.
- is checked — 요소가 현재 체크되었는지 반환해요.
- is unchecked — 요소가 체크되지 않았는지 반환해요.
- can change — 요소가 변경될 수 있는지 반환해요.
- should allow check — 요소가 체크될 수 있는지 반환해요 (이미 체크됐는지 또는
beforeChecked가 취소할지 확인해요). - should allow uncheck — 요소가 언체크될 수 있는지 반환해요 (이미 언체크됐는지 또는
beforeUnchecked가 취소할지 확인해요). - should allow determinate — 요소가 결정 상태가 될 수 있는지 반환해요 (이미 결정 상태인지 또는
beforeDeterminate가 취소할지 확인해요). - should allow indeterminate — 요소가 중간 상태가 될 수 있는지 반환해요 (이미 중간 상태인지 또는
beforeIndeterminate가 취소할지 확인해요). - can uncheck — 요소가 언체크될 수 있는지 반환해요.
- destroy — 인스턴스를 파괴하고 모든 이벤트를 제거해요.
Checkbox
이 설정들은 체크박스에 특정하며, 그 동작의 매개변수를 결정해요.
| 이름 | 기본값 | 설명 |
|---|---|---|
uncheckable |
auto |
true/false로 설정하면 입력이 선택 없음을 허용할지 여부를 결정해요. auto는 라디오 박스에 대해서만 이 동작을 허용하지 않도록 설정해요. |
fireOnInit |
false |
체크 상태에 대한 콜백을 초기화와 변경 시 모두 발생시킬지 여부예요. |
enableEnterKey |
true |
포커스된 체크박스에서 ENTER 키를 누르면 그것도 토글할지 여부예요. |
| 콜백 | 컨텍스트 | 설명 |
|---|---|---|
onChange |
HTML input element | 체크박스가 체크되거나 언체크된 후의 콜백이에요. |
onChecked |
HTML input element | 체크박스가 체크된 후의 콜백이에요. |
onIndeterminate |
HTML input element | 체크박스가 중간 상태로 설정된 후의 콜백이에요. |
onDeterminate |
HTML input element | 체크박스가 결정 상태로 설정된 후의 콜백이에요. |
onUnchecked |
HTML input element | 체크박스가 언체크된 후의 콜백이에요. |
beforeChecked |
HTML input element | 체크박스가 체크되기 전의 콜백이에요. false를 반환하면 변경을 취소할 수 있어요. |
beforeIndeterminate |
HTML input element | 체크박스가 중간 상태로 설정되기 전의 콜백이에요. false를 반환하면 변경을 취소할 수 있어요. |
beforeDeterminate |
HTML input element | 체크박스가 결정 상태로 설정되기 전의 콜백이에요. false를 반환하면 변경을 취소할 수 있어요. |
beforeUnchecked |
HTML input element | 체크박스가 언체크되기 전의 콜백이에요. false를 반환하면 변경을 취소할 수 있어요. |
onEnable |
HTML input element | 체크박스가 활성화된 후의 콜백이에요. |
onDisable |
HTML input element | 체크박스가 비활성화된 후의 콜백이에요. |
Module
이 설정들은 모든 모듈에 공통이며, 컴포넌트가 콘텐츠를 DOM 속성에 연결하는 방식과 모듈의 디버깅 설정을 정의해요.
| 이름 | 기본값 | 설명 |
|---|---|---|
name |
Checkbox |
로그 문장에 사용되는 이름이에요. |
namespace |
checkbox |
이벤트 네임스페이스예요. |
selector |
{ input : 'input[type=checkbox], input[type=radio]', label : 'label' } |
모듈의 부분을 찾는 데 사용되는 선택자예요. |
className |
{ checked : 'checked', disabled : 'disabled', radio : 'radio', readOnly : 'read-only' } |
요소 상태를 결정하는 데 사용되는 클래스 이름이에요. |
silent |
false |
모든 콘솔 출력을 조용히 만들어요. |
debug |
false |
콘솔에 디버그 출력을 보여줘요. |
performance |
true |
성능 메트릭과 함께 console.table 출력을 보여줘요. |
verbose |
false |
디버그 출력에 모든 내부 행동을 포함해요. |
errors |
{ method : 'The method you called is not defined.' } |
오류 메시지 설정이에요. |
더 알아보기 (Learn more)
체크박스로 선택형 UI를 다양하게 만들 수 있어요. 드롭다운 선택이나 폼 검증도 궁금하다면 Dropdown과 Form 문서를 함께 살펴보세요.