【问题标题】:How to prevent special characters input into Edit Box如何防止特殊字符输入到编辑框
【发布时间】:2016-02-14 07:30:34
【问题描述】:

我在我的编辑框中添加了 validateConstraint 模块,当您提交表单时它工作正常:

<xp:validateConstraint
message="Only letters, numbers and the space character allowed in this field">
<xp:this.regex><![CDATA[^[a-zA-Z0-9_ ]*$]]></xp:this.regex>
</xp:validateConstraint>

但是如何防止输入/粘贴此类字符。假设我需要在 keyDown 事件中添加一些替换语句,但无法弄清楚到底是什么。

【问题讨论】:

  • 你为什么不通过一个循环运行整个字符串来只接受某些字符,不管他们输入了什么?您可以在提交字段时执行此操作,而不是尝试在运行中执行此操作(这可能会变得笨拙)。
  • 这很自然地会阻止某些字符进入。正如我在上面写的 validateConstraint 工作正常
  • 哦。我错过了那部分。对不起。 :)

标签: xpages


【解决方案1】:

您可以使用onkeypress 事件来限制您想要接受的字符。

这不会验证特殊字符,它不允许用户键入它们。这是一个会告诉您密钥代码的网站:http://keycode.info/

例如,这将只允许数字:

var keyCode = event.keyCode;
if((keyCode >= 48 && keyCode <= 57) ||keyCode == 8){
    event.returnValue = true;
}else{
    event.returnValue = false;
}

您也可以反转这一点,并通过键码选择性地排除特殊字符。

这是我如何做的图片。我不像 cmets 中的链接那样使用 JQuery,尽管这当然也有效:

一个警告:对于在编辑框(在 XPages 中)中使用,键盘字符的工作方式相同,即使它们具有不同的键码。在某些情况下,例如 Dojo Comboxbox,您还需要同时指定普通数字和键盘数字。 keyCode values for numeric keypad?

【讨论】:

猜你喜欢
  • 2015-02-12
  • 1970-01-01
  • 2016-01-06
  • 2019-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-22
相关资源
最近更新 更多