首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

jQuery 日期字符串格式化替換後未同步更新到模板變量的問題

     編輯:程式設計綜合問答

問題現象

JS 代碼將 2016/7/22 0:00:00 替換為 2016-7-22,但模板變量 {$ReplaceModelRQ$} 仍顯示原格式。

原因

{$ReplaceModelRQ$} 是**服務端模板引擎**(如 Smarty、Velocity、JSP EL)的佔位符,在**服務端渲染階段**被替換為字符串並發送給瀏覽器。瀏覽器端的 JS 修改的是 DOM 節點內容,**無法回溯修改已發送的模板變量值**。

解決方案

  1. 服務端格式化(推薦):Controller/Service 層將日期格式化為目標格式再傳給模板。
    model.addAttribute("ReplaceModelRQ", dateService.format(date, "yyyy-MM-dd"));
  2. 前端統一渲染:若用 Vue/React 等前端框架,日期以時間戳/ISO 字符串下發,組件內統一格式化展示。
  3. 若必須在舊模板中改:給目標元素加 id,JS 直接 $('#targetId').text(formattedDate) 覆蓋顯示,而非依賴模板變量。

代碼修正示例

// 原代碼
var str = $("#jzrq").html();
str = str.toLocaleString().split(' ')[0].replace(/\//g, '-');
$("#jzrq").html(str); // 只修改了 DOM

// 正確:同步修改顯示元素
$('#displayTarget').text(str); // 假設有獨立顯示區域
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved