@@ -265,20 +265,40 @@ const closeModal = () => {
|
||||
}
|
||||
}
|
||||
|
||||
// 모달 내 과목 선택 후 상담 신청 폼으로 이동
|
||||
// 모달 내 과목 선택 후 상담 신청 폼으로 이동 및 해당 과목 자동 선택
|
||||
const applyWithSubject = (subjectName) => {
|
||||
closeModal()
|
||||
const cleanSubj = subjectName.replace(/과외$/, '')
|
||||
const cleanSubj = subjectName.replace(/과외$/, '').trim()
|
||||
|
||||
const subjSelect = document.getElementById('weakSubject') || document.getElementById('c-subject')
|
||||
if (subjSelect) {
|
||||
subjSelect.value = cleanSubj
|
||||
subjSelect.dispatchEvent(new Event('change'))
|
||||
}
|
||||
|
||||
const formTarget = document.getElementById('leadFormSection') || document.getElementById('consult-section')
|
||||
if (formTarget) {
|
||||
formTarget.scrollIntoView({ behavior: 'smooth' })
|
||||
if (typeof window !== 'undefined') {
|
||||
// 1. 커스텀 이벤트 발송 (Vue 반응형 formData.subject 즉시 업데이트)
|
||||
window.dispatchEvent(new CustomEvent('select-subject', { detail: { subject: cleanSubj } }))
|
||||
|
||||
setTimeout(() => {
|
||||
// 2. 칩 버튼 DOM 직접 클릭 트리거 (완벽 호환)
|
||||
const buttons = document.querySelectorAll('#leadFormSection button')
|
||||
for (const btn of buttons) {
|
||||
const text = btn.innerText.trim()
|
||||
const dataSubj = btn.getAttribute('data-subject')
|
||||
if (text.startsWith(cleanSubj) || dataSubj === cleanSubj) {
|
||||
btn.click()
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
// 3. input/select fallback
|
||||
const subjSelect = document.getElementById('weakSubject') || document.getElementById('c-subject')
|
||||
if (subjSelect) {
|
||||
subjSelect.value = cleanSubj
|
||||
subjSelect.dispatchEvent(new Event('change'))
|
||||
}
|
||||
|
||||
// 4. 상단 폼 위치로 부드럽게 스크롤 이동
|
||||
const formTarget = document.getElementById('leadFormSection') || document.getElementById('consult-section')
|
||||
if (formTarget) {
|
||||
formTarget.scrollIntoView({ behavior: 'smooth' })
|
||||
}
|
||||
}, 60)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user