39 lines
1.4 KiB
JavaScript
39 lines
1.4 KiB
JavaScript
const typeSelect = document.querySelector("select[name=type]");
|
|
const partSelect = document.querySelector("select[name=part_uid]");
|
|
const amountInput = document.querySelector("input[name=amount]");
|
|
|
|
// 원본 옵션들 저장 (clone 해서 나중에 다시 쓰기)
|
|
const allOptions = Array.from(partSelect.options).map(opt => opt.cloneNode(true));
|
|
|
|
// type 선택 시 part_uid 옵션 재구성
|
|
typeSelect.addEventListener("change", function () {
|
|
let selectedType = this.value;
|
|
|
|
// partSelect 초기화
|
|
partSelect.innerHTML = "";
|
|
|
|
// "부품정보 선택" 기본 옵션 추가
|
|
let defaultOpt = allOptions.find(opt => opt.value === "");
|
|
if (defaultOpt) {
|
|
partSelect.appendChild(defaultOpt.cloneNode(true));
|
|
}
|
|
|
|
// 선택된 type 에 맞는 옵션만 추가
|
|
allOptions.forEach(opt => {
|
|
if (!opt.value) return; // 기본옵션은 이미 넣음
|
|
if (!selectedType || opt.dataset.type === selectedType) {
|
|
partSelect.appendChild(opt.cloneNode(true));
|
|
}
|
|
});
|
|
|
|
// 선택값/금액 초기화
|
|
partSelect.value = "";
|
|
amountInput.value = "";
|
|
});
|
|
|
|
// part_uid 선택 시 amount 값 자동 반영
|
|
partSelect.addEventListener("change", function () {
|
|
let selectedOption = this.options[this.selectedIndex];
|
|
let price = selectedOption.getAttribute("data-price") || "";
|
|
amountInput.value = price;
|
|
}); |