【发布时间】:2016-06-01 12:55:42
【问题描述】:
我正在努力实现这一目标。我有一个文本框 在这个文本框中我只允许这些字符。
abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789
and only these symbols +-.,$
我只使用纯 javascript 和 onkeydown 但使用 onkeydown 我无法检测到按键。例如,当用户按下 shift + 5 ... 我得到 keycode 16 和 keycode 53 ,我只寻找 keycode 37 .我正在使用 IE11 进行测试
这就是我所拥有的
<script language="JavaScript" type="text/javascript">
document.forms[0].addEventListener("input", function (e) {
var input = this.children[0];
var not = input.value.match(/[^a-zA-Z0-9.+,$-]+/g);
if (not) {
not.forEach(function (text) {
input.value = input.value.replace(text, "")
})
}
})
</script>
'this is a dynamic textbox
Dim txtDesc As New TextBox
txtDesc.Attributes.Add("onkeydown", "return isAllowed(event)")
以上代码仅适用于 Chrome 和 Firefox。
如何才能在IE11上获得onkeypress的效果? 我在 IE11 上尝试了 onkeypress,但它没有触发。
如果可能,我的解决方案必须适用于所有 Chrome、FF 和 IE11。
谢谢
【问题讨论】:
-
最简单的方法是使用
input元素,pattern属性 -
谢谢,我会试试这个 [A-Za-z0-9+-.,$]
标签: javascript asp.net vb.net internet-explorer