表單提交時,想先按原 action 提交,再 AJAX 請求另一個 URL,或直接將表單提交到另一個 URL。
form.action 再提交function submitForm() {
if (_finst_taskComment.value === "") {
alert("請填寫審批意見");
return;
}
var form = document.getElementsByTagName("form")[0];
form.action = 'https://another-url.com/api/submit'; // 修改目標 URL
form.submit(); // 同步提交到新地址
}
function submitForm() {
if (_finst_taskComment.value === "") {
alert("請填寫審批意見");
return;
}
var form = document.getElementsByTagName("form")[0];
// 1. 異步通知另一系統(不阻塞表單提交)
fetch('https://another-url.com/api/notify', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({comment: _finst_taskComment.value})
}).catch(console.error); // 靜默失敗不影響主流程
// 2. 正常提交表單
form.submit();
}
form.action 可動態修改,form.submit() 會向當前 action 發起**同步**導航請求。fetch/XMLHttpRequest 是**異步**,不阻塞頁面跳轉。await fetch(...) 並處理錯誤,但會延遲用戶感知。修改 form.action 再 submit() 是將表單提交到任意 URL 的最簡單方法;若需額外異步通知,用 fetch 並發即可。