From 08035e3447594232a21803c98929a63a16dd1ce7 Mon Sep 17 00:00:00 2001 From: Zichao Lin Date: Sun, 5 Jul 2026 20:19:47 +0800 Subject: [PATCH] feat(ui): arrival time only required when status is delivered, not sent --- app/templates/postcard_form.html | 45 ++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 19 deletions(-) diff --git a/app/templates/postcard_form.html b/app/templates/postcard_form.html index 55f00c2..03f296c 100644 --- a/app/templates/postcard_form.html +++ b/app/templates/postcard_form.html @@ -17,20 +17,20 @@
- + - - - - - + + + + +
@@ -43,16 +43,23 @@ function toggleFields() { var s = document.getElementById('status-select').value; var sd = document.getElementById('fields-sent-delivered'); var rc = document.getElementById('fields-received'); - var isSent = (s !== 'received'); - sd.style.display = isSent ? '' : 'none'; - rc.style.display = isSent ? 'none' : ''; - // toggle required on hidden fields - sd.querySelectorAll('[data-group="sent-delivered"]').forEach(function(el) { - el.required = isSent; - }); - rc.querySelectorAll('[data-group="received"]').forEach(function(el) { - el.required = !isSent; - }); + var arrival = document.getElementById('input-arrival'); + var labelArrival = document.getElementById('label-arrival'); + if (s === 'received') { + sd.style.display = 'none'; + rc.style.display = ''; + arrival.required = false; + } else { + sd.style.display = ''; + rc.style.display = 'none'; + if (s === 'delivered') { + arrival.required = true; + labelArrival.textContent = '到达时间 *'; + } else { + arrival.required = false; + labelArrival.textContent = '到达时间'; + } + } } toggleFields();