【问题标题】:How to cancel onkeydown for accent mark如何取消重音符号的onkeydown
【发布时间】:2019-02-25 14:07:17
【问题描述】:

我正在尝试制作一个只写\[A-Za-z0-9 -]\ 的输入文本,所以我将条件放在 onkeydown 函数中。它运作良好。几乎。如果你写ẃéŕýúíó(带有重音符号的东西)它不起作用。

极端情况:

<input type="text" onkeydown="return false;"/>

我可以写á。如何预防?

编辑:

使用\[A-Za-z0-9 -]\ 编码

const verif = (event) => {
  const char = event.key
  if(char!=="Unidentified"){// when á return Unidentified
    return /[A-Za-z0-9 -]/.test(char)
  }else{
    console.log("why!!")
    return false
  }
}
//tested on chrome 72
<input type="text" onkeydown="return verif(event);" />

【问题讨论】:

  • 如果你使用html5你可以使用<input type="text" pattern="[a-zA-Z0-9-]+">
  • stackoverflow.com/questions/895659/… 请向下滚动并查看所有可能的答案
  • @RomainB。我刚刚在 Codepen 中尝试过,它绝对不会阻止任何事情:/ 我可以在输入字段中输入我想要的每个重音字符
  • 你能分享你用[A-Za-z0-9 -]正则表达式尝试的代码吗?

标签: javascript dom


【解决方案1】:

当用户在字段内输入时,您可以使用input 事件来获取更改。

$('#test').on('input',(e)=>{
	let newValue = e.currentTarget.value.replace(/[^a-zA-Z0-9 -]/g, '')
  e.currentTarget.value = newValue
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="test" type="text" placeholder="test"/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-08
    • 2010-09-19
    • 2012-12-10
    • 1970-01-01
    • 1970-01-01
    • 2011-12-11
    相关资源
    最近更新 更多