【问题标题】:textbox only allow a-z 0-9 and . , + - and $文本框只允许 a-z 0-9 和 . , + - 和 $
【发布时间】: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


【解决方案1】:

试试RegExp[a-zA-Z0-9.+,$-]+

document.forms["form"].addEventListener("input", function(e) {
  var input = this.querySelector("input[name=input]");
  var not = input.value.match(/[^a-zA-Z0-9.+,$-]+/g);
  if (not) {
    not.forEach(function(text) {
      input.value = input.value.replace(text, "")
    })
  }
})
<form name="form">
  <input name="input" type="text" pattern="[a-zA-Z0-9.+,$-]+" />
  <input type="submit" />
</form>

【讨论】:

  • 这是一个问题。我会接到用户的电话询问为什么.. 如果可能的话,我宁愿系统删除不需要的字符
  • “如果可能的话,我宁愿系统删除不需要的字符” 查看更新的帖子; RegExp .match() 检查字符是否不在字符类中
  • 知道为什么我无法获取未定义或空引用的属性“addEventListener”。在原始帖子中更新了我的代码
  • 您可能在html 中没有form 元素? this.children[0] 引用 form 中的第一个元素。没有尝试过 vb.netasp.net 。将更新帖子以提供 forminput 元素的 name 属性;查看更新后的帖子
  • 感谢在 body 似乎使它工作之后将脚本移到最后。将测试更多.. 谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-30
  • 2021-11-20
  • 2016-12-22
  • 2023-04-08
相关资源
最近更新 更多