You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ServiceNow页面含点ID的textarea添加文本JS按钮失效问题

解决ID含点号的textarea无法被jQuery选中的问题

哦,这个问题我碰到过!罪魁祸首就是ID里的点号——jQuery的选择器语法会把点号当成类选择器的分隔符,所以$("#incident.close_notes")其实是在找ID为incident且带有close_notes类的元素,而不是你要的那个ID完整是incident.close_notes的textarea。这就解释了为什么点击按钮没反应也没报错——jQuery没找到目标元素,自然不会执行后续逻辑。

下面给你两种靠谱的解决方法:

方法1:转义ID里的点号

在jQuery选择器中,用双反斜杠\\.转义点号,这样jQuery就会把它当成ID的一部分,而不是类选择器的分隔符。修改你的AddResolve函数如下:

function AddResolve() {
  // 用\\.转义ID里的点号
  const closeNotesTextarea = $("#incident\\.close_notes");
  if (!closeNotesTextarea.val()) {
    closeNotesTextarea.val(text_resolve);
    closeNotesTextarea.css({'background-color':'green'});
    closeNotesTextarea.focus();
  }
}

方法2:使用原生JS的getElementById(更推荐)

原生JS的document.getElementById()不受点号影响,它会严格匹配完整的ID字符串,不会产生歧义。这种方法更直接,也避免了jQuery选择器的语法陷阱:

function AddResolve() {
  const closeNotesTextarea = document.getElementById("incident.close_notes");
  if (!closeNotesTextarea.value) { // 原生JS用.value获取值
    closeNotesTextarea.value = text_resolve;
    closeNotesTextarea.style.backgroundColor = 'green'; // 原生JS设置样式
    closeNotesTextarea.focus();
  }
}

你可以先在浏览器控制台测试document.getElementById("incident.close_notes"),如果能返回对应的textarea元素,说明这个方法肯定能生效。

内容的提问来源于stack exchange,提问作者4532066

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 22:17:41