原代碼中 if (cname==\"\") 雖語法正確,但若輸入框包含空白字元,仍視為非空。且程式碼混雜 PHP、HTML、JS,結構混亂,難以維護。
if (cname.trim().length === 0) —— 去除首尾空白後檢查長度。if (cname === \"\" || cname === null) —— 適用於未 trim 的情況。addEventListener('submit', handler) 綁定提交事件,而非 onsubmit 屬性。<input required>、pattern 屬性。// 獨立 JS 檔案
function validateForm(form) {
const requiredFields = ['cname', 'tname', 'pname', 'paim', 'pcontent', 'pstep', 'presult', 'panalyse'];
for (const id of requiredFields) {
const el = form.elements[id];
if (!el.value.trim()) {
alert('請填寫所有必填欄位');
el.focus();
return false;
}
}
return true;
}
document.getElementById('myForm').addEventListener('submit', e => {
if (!validateForm(e.target)) e.preventDefault();
});