[javascript] 폼 필드들 간의 상호 의존성을 검사하는 방법은?
웹 폼을 만들 때, 때로는 한 필드에 입력된 값에 따라 다른 필드가 나타나거나 사라지거나, 특정한 값을 가져야 할 때가 있습니다. 이런 상호 의존성을 갖는 폼 필드들을 검사하고 처리하는 방법을 알아보겠습니다.
- 이벤트 리스너 사용하기:
- 상호 의존성을 갖는 필드들의 값을 검사하고 처리하기 위해, 각 필드에 이벤트 리스너를 설정합니다.
- 가장 흔한 이벤트는 “input” 이벤트이며, 필드 값이 변경될 때마다 이벤트가 발생합니다.
- 이벤트 리스너에서 필드들의 값을 읽고, 필요한 처리를 수행합니다.
const field1 = document.getElementById('field1');
const field2 = document.getElementById('field2');
field1.addEventListener('input', () => {
// field1의 값을 읽어와서 필요한 처리 수행
});
field2.addEventListener('input', () => {
// field2의 값을 읽어와서 필요한 처리 수행
});
- 조건문을 사용하기:
- 이벤트 리스너 내부에서 필드들의 값을 검사하고, 조건문을 사용하여 상황에 맞게 처리합니다.
- 예를 들어, field1의 값이 특정 조건을 만족할 때, field2를 나타내거나 감추는 처리를 수행할 수 있습니다.
field1.addEventListener('input', () => {
if (field1.value === '특정 조건') {
field2.style.display = 'block'; // field2를 나타내는 처리
} else {
field2.style.display = 'none'; // field2를 감추는 처리
}
});
- 폼 제출 시 검사하기:
- 필드들의 값이 서로 의존적인 경우, 폼 제출 시에도 그에 맞게 검사할 수 있습니다.
- 폼 제출 이벤트에 이벤트 리스너를 추가하고, 필드들의 값을 검사한 뒤 유효성을 판단하고 처리합니다.
const form = document.getElementById('myForm');
form.addEventListener('submit', (event) => {
if (field1.value !== field2.value) {
event.preventDefault(); // 폼 제출을 막음
alert('field1과 field2 값이 일치하지 않습니다.'); // 사용자에게 경고 메시지 보여줌
}
});
이렇게 폼 필드들 간의 상호 의존성을 검사하고 처리하는 방법들을 이용하면, 웹 폼을 더 유연하게 제어할 수 있습니다.