CSJS不更新计算字段

时间:2018-11-15 20:35:11

标签: javascript xpages

我很少使用CSJS,但是在这种情况下,我试图使它更新计算字段。虽然该字段的值已更新,以便可以通过警报获取它,但我无法使其显示在XPage上。我尝试使用可编辑字段并选中“只读”,但是数据也没有显示在XPage上。

我正在调用CSJS脚本块,并且我知道您需要刷新才能显示更改,但是我在该字段周围放置了一个面板,并对此进行了尝试并使用了div。既不会产生错误消息,也不会显示值。

我正在使用XSP.partialRefreshGet(“#{id:remaining}”);在我设置值之后。我已经尝试过使用.partialRefreshPost进行任何操作,但是它什么都没做,但是随后我在Stephan Wissel的帖子“ Meet the XSP object”中读到了“ ...对于POST,refreshId必须指向表单...”, XPage未附加到表单。我也尝试过使用参数Instant:true。

我已经阅读了Teresa Monahan的文章“ XPages中的客户端JavaScript库”,Serdar Basegmez的“您和每个XPages开发人员犯的10个错误”,以及在网上都能找到的所有内容,以及“ Mastering XPages”一书。我知道这应该没那么困难,所以我相信我只是想念一些东西(可能是愚蠢的)。

根据以上内容,XPage或特定字段均未绑定到任何形式。它位于选项卡式表格的第一个选项卡上,仅显示计算值。该值不需要保存在任何地方。

我通过在dijit / form / ComboBox选择中使用onChange =“ Testing()”来调用代理中的函数,因为我想要的是小方框,再次选择后,不需要字段值

这是脚本块中的简单文本:

function Testing(){
  XSP.getElementById("#{id:remainingPts}").value = "100";
  var rewards = XSP.getElementById("#{id:numOfRewards1}").value;
  alert("rewards:  " + rewards);
  XSP.partialRefreshGet("#{id:remaining}");
}

这是该字段的样子:

<xp:panel id="remaining">
   <xp:text escape="true" id="remainingPts" value="0">
   </xp:text>
</xp:panel>

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我认为xp:text呈现为<span>标签,在这种情况下,您需要设置.innerHtml()而不是.value()。参见How do I change the text of a span element in JavaScript。您无需刷新即可看到更改。