2015-11-12 48 views
1

我加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事件中,但无法弄清楚究竟是什么。

+0

为什么不通过循环运行整个字符串来只接受某些字符,不管他们输入了什么内容?您可以在提交该字段时执行此操作,而不是试图在运行中执行此操作(可能会变得笨重)。 – durbnpoisn

+1

这是阻止一些字符输入的自然现象。正如我上面写的validateConstraint工作正常 – VladP

+0

哦。我错过了那部分。抱歉。 :) – durbnpoisn

回答

2

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

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

例如,这将只允许数字:

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

你也可以扭转这种并有选择地通过自己的键码不包括特殊字符。

这是我如何做的一张图片。我不使用JQuery一样在评论中的链接,但肯定也工作: enter image description here

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

+0

谢谢史蒂夫。它的效果很好... – VladP

+0

这是一篇关于这个主题的博文:http://notesspeak.blogspot.com/2015/11/limiting-keyboard-input-in-xpages.html –

相关问题