首页 > 解决方案 > 计算我的 xp:inputText 控件的字符数

问题描述

我将 xp:inputText 控件绑定到视图范围。现在,我想在用户输入 10 个字符时从按钮中删除禁用属性,但 onkeypress 或 onchange 事件(服务器)似乎只在我离开输入控件时提交某些内容。

我该如何解决这个服务器端?

标签: xpagesxpages-ssjs

解决方案


如果您确实选择了客户端解决方案,请将此类内容放入您的页面或页面底部的自定义控件中。

<xp:scriptBlock>
setInterval(function () {
  if(XSP.getElementById("#{id:textInputFieldName}").val().length > 9) {
    XSP.getElementById("#{id:submitButtonName}").removeAttr("disabled");
  } else {
    XSP.getElementById("#{id:submitButtonName}").attr("disabled", "disabled");
  }
}, 500); //Runs every 0.5s
</xp:scriptBlock>

这每 500 毫秒运行一次,并检查文本输入的长度是否大于 9 个字符。如果是,它会删除按钮的 disabled 属性,否则会保留该属性。即使人们将数据复制并粘贴到字段中,这种方法也有效,而使用按键的解决方案可能无法获取粘贴事件。

您将需要更改元素的 ID。


推荐阅读