預設 onclick="ajaxpost('formid')" 提交後,提示訊息顯示在 __formid 區塊。需在提交前清空舊訊息,提交後輪詢判斷成功並跳轉。
onclick="$('__formid').innerText=''; ajaxpost('formid'); checkPostResult();"
function checkPostResult() {
var cid = setInterval(function() {
if ($('__formid').innerText == 'success') {
alert('提交成功');
location.href = 'xxxxx.php';
clearInterval(cid);
}
}, 1000);
}
ajaxpost 為非同步 (AJAX),回呼時提示訊息尚未寫入 DOM。setInterval 每秒檢查 __formid 內容,直到出現 success 關鍵字。clearInterval 停止輪詢,避免記憶體洩漏。Promise / async-await (需 ajaxpost 回傳 Promise) 或 jQuery $.ajax 直接處理回呼。{status: 'success', url: '...'},前端統一解析,避免依賴 DOM 文字內容。Discuz! X / UCHome 內建 ajaxpost (基於 Ajax 類) 的專案。